簡體   English   中英

填充列表視圖時出現android異常

[英]android exception while populating a list view

在嘗試根據switch語句的結果填充ListView中的項目時,我遇到某種錯誤。 應用程序強制在模擬器內部關閉,當我通過Eclipse調試器運行它時,它表明主線程由於IllegalStateException而掛起。

除了它意味着很明顯它已經進入某種錯誤狀態之外,我該如何解決? 我正在嘗試從OnItemClickListener內部執行所有這些操作,以便在單擊該項目時,switch語句評估單擊了哪個項目,然后根據開關的結果將相應的ListAdapter分配給ListView。 這是正確的方法嗎? 如果是的話,下面的代碼會引發錯誤嗎?

final ListView lv = (ListView) findViewById(R.id.main_list);
    final String[] autos = getResources().getStringArray(R.array.auto_array);
    final ListAdapter la_auto = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, autos);

然后再進一步處理onclicklistener

 gallery.setOnItemClickListener(new OnItemClickListener()
    {
        public void onItemClick(AdapterView parent, View v, int position, long id)
        {
            switch(gallery.getSelectedItemPosition())
            {
            case 0:
                lv.setAdapter(la_auto);
                break;

編輯:LogCat堆棧跟蹤在此錯誤處停止,“您必須為TextView提供資源ID,並且堆棧已在此時掛起:ArrayAdapter.createViewFromResource(int,View,ViewGroup,int)行:347

有什么建議么? 我想這與我傳遞給onItemClicked方法的參數有關。

試試android.R.layout.simple_list_item_1

答案在simple_list_item_2.xml中

<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
    ...

您需要使用僅包含TextView的資源。 simple_list_item_1.xml符合要求:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    ...

嘗試在此處瀏覽其他可能性如果看不到自己喜歡的可能性,請自己制作。

使用新的ListView和適配器啟動新的Activity可能會更好。

您可以在Intent中將所選項目作為參數傳遞:

Intent = new Intent(MyActivity.this, ActivityToStart.class);
intent.putExtra("selected", position);
startActivity(intent);

稍后在其他活動的onCreate方法中使用以下方法檢索它:

int position = getIntent().getIntExtra("selected");

您可能需要考慮在活動之間共享哪些信息。 使用多個活動將使您的用戶可以按“后退”按鈕並返回到原始列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM