2012-09-03 20 views
2

我有一個listview嵌入在onCreate方法中的spinner。我想在點擊事件的列表項上點擊toast msg,但無法在ListView項目上設置onClick監聽器。我沒有使用任何自定義適配器。我猜想同一類型的簡單適配器用於微調和列表視圖,因此它會產生一些編譯挫折。Spinner中的ListView:適用於事件檢測的衝突

我一直專注於「爲"lv.setOnItemClickListener(new AdapterView.OnItemClickListener獲得的錯誤:)

類型新AdapterView.OnItemClickListener({}必須實現 繼承的抽象方法 AdapterView.OnItemClickListener.onItemClick(適配器視圖,視圖,INT , 長)

如何管理設置上的列表視圖項目單擊事件中使用簡單的適配器保持? 難道我莫名其妙地「重命名」列表視圖適配器或如何繼續然後..?

僞代碼

// ... 
import android.widget.AdapterView; 
/* manually added */ 
import android.widget.AdapterView.OnItemClickListener; 

public class MyActivity extends Activity { 

onCreate(Bundle savedInstanceState){ 

// ... some code 
     // Set Spinner listener 
     mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> spinner, View v, int position, long id) { 

// ... some code 


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener()) { 
         public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 
           // When clicked, show a toast with the TextView text 
           Toast.makeText(getApplicationContext(), "some msg" , Toast.LENGTH_SHORT).show(); 
          } 
         }); 

} 

} 
+1

「我有一個列表視圖在onCreate方法中的微調嵌入」 - 如果可行的話,我會驚呆了。 – CommonsWare

+0

好吧,它確實像一個魅力工作,使用列表視圖數據的哈希列表和要求myAdapter.notifyDataSetChanged();但我努力在listview項目上啓動Toast。 – hornetbzz

+1

微調它自己取決於一個適配器,它顯示的彈出與「ListView」沒有多大區別。那麼爲什麼你在一個Spinner彈出框中嵌入一個列表視圖?你需要多個適配器,而不是多個'ListViews'。另外,如果你想在spinner彈出窗口中捕獲視圖的單個事件,在適配器的'getView()'方法內設置click事件處理程序。 –

回答

0

所以我有一個微調,並在同一個活動的列表視圖。基於微調選擇,我更新了一個列表視圖。我也從例如按鈕事件等其他事件更新相同的列表視圖。代碼原則如問題中所述。

我確認這種方式完美地工作,我解決了我的問題,與微調控制器/ ListView交互,但與我提取數據提供列表的方式。

爲了說明結果,我的佈局看起來與this相似,但是附加了微調按鈕,它們都驅動着列表視圖的結果。