0

工作下面是相關代碼:OnItemClickListener不是ListView控件

super.onCreate(savedInstanceState); 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE);     

      // storing string resources into Array 
      String[] menulist = getResources().getStringArray(R.array.menulist);  

      // Binding resources Array to ListAdapter 
      this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, menulist)); 


      ListView lv = getListView(); 

      // listening to single list item on click 
      lv.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

       // selected item 
       String selected = ((TextView) view).getText().toString(); 

       Toast toast=Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT);//This is where the error shows 
       toast.show(); 

       // Launching new Activity on selecting single List Item 
       /*Intent i = new Intent(getApplicationContext(), SingleListItem.class); 
       // sending data to new activity 
       i.putExtra("product", product); 
       startActivity(i);*/ 

      } 
      }); 

這裏的XML:

<?xml version="1.0" encoding="utf-8"?> 
<!-- Single List Item Design --> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/label" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/listgradient" 
     android:clickable="true"  
     android:padding="10dip" 
     android:textSize="16dip" 
     android:textStyle="bold" > 
</TextView> 

我已經把clickable屬性true。但Toast未顯示。我哪裏錯了?

+0

什麼你到底想做顯示烤麪包或點擊文本視圖,因爲問題是點擊列表視圖 –

回答

1

試試這個:

String selected = ((TextView) view.findViewById(R.id.your_textView_item_id)).getText().toString(); 
+0

我試過了,你的邏輯看起來不錯。但是,我認爲'吐司'有一些問題,因爲它還沒有被顯示。 –

+0

添加一些文字,並選擇是否在烤麪包中顯示。如果不更改getApplicationContext()到Activity.this – SKK

+0

刪除此: android:clickable =「true」 – SKK

2

,我認爲你的錯誤是在這裏:

String selected = ((TextView) view).getText().toString(); 

您應該使用變量「位置」以獲取列表數據的價值。

+0

我想這一點,你的邏輯似乎right.But,我想「吐司」有一些問題,因爲它還沒有被顯示出來。 –

相關問題