2016-09-20 31 views
0

我目前正在處理一個基本的自定義ListAdapater。
在我的MainActivity上,它試圖從我的XML文件中查找我的ListView時顯示此錯誤。錯誤「無法解析符號'listView'」爲一個CustomListAdapter

這裏是我的MainActivity.java:

public class MainActivity extends ListActivity { 

    ListView list; 

    String[] itemName = { 
      "Item 1", 
      "Item 2", 
      "Item 3" 
    }; 
    String [] itemContent = { 
      "Item Content 1", 
      "Item Content 2", 
      "Item Content 3" 
    }; 

    Integer[] imageId = { 
      R.mipmap.pic1, 
      R.mipmap.pic2, 
      R.mipmap.pic3, 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     CustomListAdapter adapter = new CustomListAdapter(this, itemName, itemContent, imageId); 
     list = (ListView)findViewById(R.id.list); 
     list.setAdapter(adapter); 

     list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
       String SelectedItem = itemName[+position]; 
       Toast.makeText(getApplicationContext(), SelectedItem, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

這裏是XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@android:id/list" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

我其實對這個問題here收到了不同的錯誤。
我的代碼顯示除了與android:id錯誤,並修復了這個特殊問題,但我現在有錯誤R.id.list完全罰款。

我也嘗試了Activity的建議,並在XML中刪除了關鍵字android
也修復了我的舊錯誤,但不是這一個。
但是我剛剛發佈了我的原始代碼。

+1

嘗試'android:id =「@ + id/list」'而不是'android:id =「@ android:id/list」'+'符號很重要。 –

+1

不要再使用'ListActivity'! – adnbsr

回答

0

findViewById一些其他的ID線不在ListActivity

list = (ListView)findViewById(R.id.list); 

它可以代替用getListView()得到完全必要的,也可以做手工

list = (ListView)findViewById(android.R.id.list); 

基本上,您的XML使用android.R.id.list,而不是R.id.list。有一個區別。

如果您看到ListView無法解析的錯誤,那麼您缺少import語句。

+0

謝謝,我試過了,現在正在工作:) – Woowoo

0

正如@Sourav在上面的代碼中指出的那樣,您沒有添加+登錄到android:id =「@ android:id/list」。通過添加+標誌爲ID意味着你給 (分配)的新ID到元素但沒有+意味着你是指這已經宣告別的地方在你的代碼

+0

'@android:id/list'是一個預先定義的ID,它不需要加號 –

+0

感謝您回覆,但不帶或不帶+號。 – Woowoo