0

条件(if (vehicleColor[i].equals("1")) )などを検証して、カラーコードに基づいてリストを表示しようとしています。ループを閉じている場合、コードはこのコード セグメント (getListView().setBackgroundColor(Color.WHITE);) を使用して単色で正常に動作します。カラーコードに従ってリストを表示する必要があります。ヘルプガイが必要です。

プライベートボイドshowColouredList(){

    final ListAdapter adapter = new ArrayAdapter<String>(this,
            R.layout.list_items, R.id.label, vehicleList);
    setListAdapter(adapter);
    getListView().setTextFilterEnabled(true);
    getListView().setDividerHeight(1);
    // getListView().setBackgroundColor(Color.WHITE);

    for (int i = 0; i < vehicleList.length; i++) {

        System.out.println("--" + vehicleColor[i]);
        if (vehicleColor[i].equals("1")) {
            System.out.println("ListColour");

            getListView().getChildAt(i).setBackgroundColor(Color.GREEN); // giving NullPointerException

        } else if (vehicleColor[i].equals("2")) {

            getListView().getChildAt(i).setBackgroundColor(Color.RED);
        } else if (vehicleColor[i].equals("3")) {

            getListView().getChildAt(i).setBackgroundColor(Color.YELLOW);
        } else if (vehicleColor[i].equals("4")) {

            getListView().getChildAt(i).setBackgroundColor(Color.GRAY);

        }

    }

    getListView().setPadding(5, 10, 0, 10);
    getListView().setCacheColorHint(Color.BLUE);
    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    getListView().setEnabled(true);

    getListView().setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int index,
                long arg3) {
            // TODO Auto-generated method stub

            Intent secondActivity = new Intent(First.this,
                    SecondActivity.class);
            Utility.setDeviceId(listBean.getVehicleDeviceIdArr()[index]);
            Utility.setWindowTitle(list[index]);
            startActivity(secondActivity);

        }
    });

}
4

1 に答える 1

0

listAdapter を使用して、getView(); でジョブを実行できます。List(Array)Adapter のメソッド。

于 2012-08-07T10:26:28.973 に答える