如何在android的多选项行中使用自定义行而不是android.R.layout.simple\u list\u item\u multi\u选项?
我正在编写这段代码,但由于android.R.layout.simple\u list\u item\u多选,我无法更改文本颜色以使其在行中可见。如何更改自定义行xml的文本颜色,这是我的代码如何在android的多选项行中使用自定义行而不是android.R.layout.simple\u list\u item\u multi\u选项?,android,listview,row,multiple-choice,Android,Listview,Row,Multiple Choice,我正在编写这段代码,但由于android.R.layout.simple\u list\u item\u多选,我无法更改文本颜色以使其在行中可见。如何更改自定义行xml的文本颜色,这是我的代码 public class AndroidListViewActivity extends Activity { ListView myList; Button getChoice; String[] listConte
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();
}
});
}
}
public类AndroidListViewActivity扩展活动
{
列表视图myList;
按钮选择;
String[]listContent={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
/**首次创建活动时调用。*/
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myList=(ListView)findViewById(R.id.list);
getChoice=(按钮)findViewById(R.id.getChoice);
ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u list\u item\u多选,listContent);
myList.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
myList.setAdapter(适配器);
getChoice.setOnClickListener(新建按钮.OnClickListener(){
@凌驾
公共void onClick(视图v)
{
//TODO自动生成的方法存根
所选字符串=”;
int cntChoice=myList.getCount();
SparseBooleanArray SparseBooleanArray=myList.getCheckedItemPositions();
for(int i=0;i
请用一个示例或代码片段来帮助我,我在这里很长一段时间都感到惊讶。正如您所看到的,
ArrayAdapter
将布局资源ID作为第一个参数。这意味着您可以在那里传递任何布局,包括您自己的布局。因此,解决方案是编写自己的布局并将其传递到此处
如果您想知道stock one是如何实现的,请看一看
或者,您可以检索对视图的引用并手动更改其背景色(如果应用程序中的所有项目都共享相同的背景色,甚至可以通过样式)
顺便说一句,看起来你正在进行一项基于列表的活动;为什么不继承自
ListActivity
?正如您所看到的,ArrayAdapter
将布局资源ID作为第一个参数。这意味着您可以在那里传递任何布局,包括您自己的布局。因此,解决方案是编写自己的布局并将其传递到此处
如果您想知道stock one是如何实现的,请看一看
或者,您可以检索对视图的引用并手动更改其背景色(如果应用程序中的所有项目都共享相同的背景色,甚至可以通过样式)
顺便说一句,看起来你正在进行一项基于列表的活动;为什么不从
ListActivity
继承?您需要创建用于显示列表行的自定义布局。
请参阅,您需要创建用于显示列表行的自定义布局。 提及