Как использовать пользовательскую строку вместо android.R.layout.simple_list_item_multiple_choice в строке множественного выбора в Android? - PullRequest
1 голос
/ 05 января 2012

Я работаю над этим кодом, но у меня белый фон из-за андроида вот мой код.

    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();         
                }
            });               
        }



}

Пожалуйста, помогите мне в этом с примером или фрагментом, я поражен здесь в течение длительного времени. Спасибо

Ответы [ 2 ]

1 голос
/ 05 января 2012

Как видите, ArrayAdapter принимает идентификатор ресурса макета в качестве первого аргумента.Это означает, что вы можете передать туда любой макет, включая свой собственный.Поэтому решение состоит в том, чтобы написать свой собственный макет и передать его здесь.

Если вы хотите узнать, как реализован пакет, посмотрите здесь .

В качестве альтернативыВы можете получить ссылку на представление и изменить его цвет фона вручную (или даже с помощью стиля, если все эти элементы в вашем приложении имеют одинаковый цвет фона).

Кстати, похоже, что выв деятельности на основе списка;почему бы не наследовать от ListActivity?

0 голосов
/ 05 января 2012

Вам необходимо создать собственный макет для отображения строк списка. См. Примеры ListView

...