1

我正在处理此代码,但由于 android.R.layout.simple_list_item_multiple_choice 我有白色背景我无法更改文本颜色以便它在行中是可识别的。如何为自定义行 xml 更改它,这里是我的代码。

    public class AndroidListViewActivity extends Activity 
{           
    ListView myList;     
    Button getChoice;           
    String[] listContent = {"January","February","March","April","May","June","July","August","September","October","November", "December"};      
    /** Called when the activity is first created. */   
    @Override     
    public void onCreate(Bundle savedInstanceState) 
    {      
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);       
        myList = (ListView)findViewById(R.id.list);       
        getChoice = (Button)findViewById(R.id.getchoice);             
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice,listContent); 
        myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);      
        myList.setAdapter(adapter);               
        getChoice.setOnClickListener(new Button.OnClickListener(){        
            @Override          
            public void onClick(View v) 
            {              
                // TODO Auto-generated method stub                     
                String selected = "";                                 
                int cntChoice = myList.getCount();              
                SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();        
                for(int i = 0; i < cntChoice; i++)
                {                   
                    if(sparseBooleanArray.get(i)) 
                    {                      
                        selected += myList.getItemAtPosition(i).toString() + "\n";                    
                        }               
                    }                           
                Toast.makeText(AndroidListViewActivity.this, selected,Toast.LENGTH_LONG).show();         
                }
            });               
        }



}

请用一个例子或片段帮助我,我在这里很长时间了。谢谢

4

2 回答 2

1

如您所见,ArrayAdapter将布局资源 ID 作为第一个参数。这意味着您可以在那里传递任何布局,包括您自己的布局。因此,解决方案是编写自己的布局并在此处传递。

如果您想知道股票的实施方式,请查看此处

或者,您可以检索对视图的引用并手动更改其背景颜色(如果您的应用程序中的所有这些项目共享相同的背景颜色,甚至可以通过样式)。

顺便说一句,您似乎处于基于列表的活动中;为什么不继承自ListActivity

于 2012-01-05T12:50:09.343 回答
0

您需要创建自定义布局以显示列表行。请参阅ListView 示例

于 2012-01-05T12:55:25.337 回答