Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android的多选项行中使用自定义行而不是android.R.layout.simple\u list\u item\u multi\u选项?_Android_Listview_Row_Multiple Choice - Fatal编程技术网

如何在android的多选项行中使用自定义行而不是android.R.layout.simple\u list\u item\u multi\u选项?

如何在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

我正在编写这段代码,但由于android.R.layout.simple\u list\u item\u多选,我无法更改文本颜色以使其在行中可见。如何更改自定义行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();         
                }
            });               
        }



}
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
继承?

您需要创建用于显示列表行的自定义布局。
请参阅,您需要创建用于显示列表行的自定义布局。 提及