开发者

Help me change TextView color dynamically?

I would like to know how to change the color of a TextView dynamically. It seems there is some stuff out there but now quite what I'm looking for.. what i'm doing here is iterating an array and if its "+" i want the text to be greem if its "-" i want the text to be red, the problem is that i'm getting null pointer error at ct.setTextColor(.....) anyone have any idea why?

here is the xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"
        android:src="@drawable/icon" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/tt"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
        />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 
            android:id="@+id/bt"
            android:singleLine="true"
            android:ellipsize="marquee"
        />
    </LinearLayout>
     <TextView开发者_StackOverflow中文版
        android:id="@+id/pm"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:text="-"

        android:textSize="30sp"
        android:textStyle="bold"
        />
</LinearLayout>

and the code snippit

    int c = count; 
    ind = (count);
    j=0;
    TextView ct = (TextView)findViewById(R.id.pm);
    funkAdapter = (new ArrayAdapter<String>(this, R.layout.rowneg, R.id.pm));
    String[] tmpAry= new String[count]; 
    for (int i = 0; i < ind; i = i+2){
         tmpAry[j] = dataAryArray[i];

        if (tmpAry[j].equals("-")){
        funkAdapter.add(tmpAry[j]);
        ct.setTextColor(Color.RED);
        }else{
            funkAdapter.add(tmpAry[j]);
            ct.setTextColor(Color.GREEN);

        }
        j++;
    }
    setListAdapter(funkAdapter);


If this code snippet above is what you copied-and-pasted out of your onCreate() method, then the main problem I see why it's giving you a null pointer error is because you haven't set the current activity's view to the XML layout with all the stuff in it. In other words, findViewById() doesn't know where you find those ID's you're referring to. Try adding this to the first line of your onCreate(), or anywhere before you call findViewById():

setContentView(R.id.yourLinearLayout);

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜