Текстовое представление simplecursoradapter, дающее исключение nullpointerexception

У меня есть два XML-файла, один из которых имеет представление списка, а другой - макет списка против некоторых texviews, я хочу изменить цвет текстового представления во втором XML-файле. Это то, что я сделал до сих пор.

main1.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingTop="4px">

    <ListView droid:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/header"
        android:layout_above="@+id/bottom_control_bar1"
        android:layout_marginBottom="45dip"
        android:drawSelectorOnTop="false"/>

</RelativeLayout>

opp_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="8px">

    <TextView
        android:id="@+id/firstName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/lastName"
        android:layout_marginLeft="6px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/firstName" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/firstName"
        android:layout_toRightOf="@id/total"
        android:layout_marginLeft="8px"
        android:textColor="@color/closedDate" />
</RelativeLayout>

opp.java:

public class OppMain extends ListActivity {
    /** Called when the activity is first created. */
    final String tag = "output";
    static String Header = "Opportunities";
    static String DBName, Date = null;
    protected Cursor cursor;
    protected ListAdapter adapter;
    SQLiteDatabase db;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        TextView hdr = (TextView)findViewById(R.id.header);
        hdr.setText(Header);

        //database              
        db = (new openDataBaseAdapter(this)).getWritableDatabase();
        cursor = db.query("userdata", new String []{"_id", "Name","Name2", "Date","title"},null, null, null, null,null);
        adapter = new SimpleCursorAdapter(
            this, 
            R.layout.opp_main,  
            cursor, 
            new String[] {"Name", "Name2", "Date","title"}, 
            new int[] {R.id.firstName,R.id.total, R.id.title, R.id.accountname});

        cursor.moveToFirst();

        while(cursor.isAfterLast() == false) {
            CloseDate = cursor.getString(cursor.getColumnIndex("Date"));
            if(CloseDate.equals("30/09/2011 00:00")) {
                TextView cl = (TextView)findViewById(R.id.title);
                Log.d(tag, "cl: " +cl);
                Log.d(tag, "Date11111: " +Date);
                cl.setTextColor(Color.CYAN);
            }

            cursor.moveToNext();
        }

        setListAdapter(adapter);
    }
}

Я хотел изменить цвет даты текстового просмотра, которая хранится в R.id.title. здесь лог-кошка дает null для значения cl..... и дает мне исключение нулевого указателя... :( может ли кто-нибудь сказать мне, пожалуйста......? заранее спасибо...:)


person rj87877    schedule 08.11.2011    source источник


Ответы (1)


У вас нет представления с именем total в файле opp_main.xml. Попробуйте добавить его и посмотрите, решит ли это проблему.

person skynet    schedule 10.11.2011
comment
Не могли бы вы обновить код в своем вопросе, а также включить трассировку стека, которую вы получаете от logcat? - person skynet; 11.11.2011