我正在处理此代码,但是由于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();
}
});
}
}
请通过示例或摘要帮助我,我在这里很长时间了。谢谢
最佳答案
如您所见,ArrayAdapter
将布局资源ID作为第一个参数。这意味着您可以在那里传递任何布局,包括您自己的布局。因此,解决方案是编写您自己的布局并在此处传递。
如果您想知道库存的实施方式,请查看here。
另外,您可以检索对视图的引用并手动更改其背景颜色(如果应用程序中的所有这些项目都共享相同的背景颜色,则可以更改其背景颜色)。
顺便说一句,您似乎处于基于列表的活动中。为什么不继承ListActivity
?
关于android - 如何在Android的“多项选择”行中使用自定义行而不是android.R.layout.simple_list_item_multiple_choice?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8742529/