想要在多选列表视图中更改文本的颜色

时间:2012-05-02 10:55:38

标签: android listview

我有多选列表,如图

所示

enter image description here

我有2个问题

  1. 但在我的所有应用程序屏幕上都有背景白色..这是同样的情况如果我将我的屏幕设为白色,所有文本“BlackBerry”,“Nokia”等都消失了,因为默认情况下文本颜色为白色。那么请告诉我如何将文字颜色改为黑色?我试过风格,但它不会工作。

  2. 我检查的位置存在一些问题......例如如果选中其中一个项目,之后如果我取消选中,即使未选中该项目,它仍会显示该项目。

  3. 以下是检查项目选择的代码

    private void doDownloading() {
            SparseBooleanArray sp = listTrackView.getCheckedItemPositions();
    
            for (int i = 0; i < sp.size(); i++) {
                selectedConferenceList.add(conferenceList.get(sp.keyAt(i))
                        .getConferenceName());
            }
    

    }

2 个答案:

答案 0 :(得分:0)

这是一个示例代码,您可以更改为

AndroidMultiChoiceListActivity .java

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class AndroidMultiChoiceListActivity extends Activity {

 ListView choiceList;
 String[] choice = { "Choice A", 
   "Choice B", "Choice C", "Choice D", "Choice E"};

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        choiceList = (ListView)findViewById(R.id.list);

        ArrayAdapter<String> adapter
        = new ArrayAdapter<String>(this, 
          android.R.layout.simple_list_item_multiple_choice, 
          choice);
        choiceList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        choiceList.setAdapter(adapter);

    }
}

<强> main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:textColor="#334422"
    />
<ListView 
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

在Textview中使用android:textColor="#334422"更改文字颜色。

答案 1 :(得分:0)

最后我知道你无法用标准ArrayAdapter<String>更改多选列表视图的文本颜色。所以我去定制适配器实现。 This链接对我开发具有多选实现的自定义适配器很有帮助。