2016-05-17 16 views
0

我想在我的適配器類中單擊listitem列表視圖中實現一個對話框。我如何從另一個班級訪問我的ListView無法解析適配器類中的ListView

public void onClick(View v) { 
    AlertDialog.Builder adb = new AlertDialog.Builder(v.getRootView().getContext()); 
    adb.setTitle("LVSelectedItemExample"); 
    adb.setMessage("Selected Item is = " + listView.getItemAtPosition(position)); 
    adb.setPositiveButton("Ok", null); 
    adb.show(); 
} 

回答

0

試試這個 -

public void onClick(View v) { 
    AlertDialog.Builder adb = new AlertDialog.Builder(v.getRootView().getContext()); 
    adb.setTitle("LVSelectedItemExample"); 
    adb.setMessage("Selected Item is = " + getItem(position)); 
    adb.setPositiveButton("Ok", null); 
    adb.show(); 
} 

或在您的活動實施onItemClick()聽衆含ListView /片段。

1

爲什麼你在你的Adapter類中創建。在您的活動或片段中使用listview.setOnItemClickListener(this)

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     } 
    }); 

在onCreate()方法。

0

您的示例代碼使用onClick,您應該有onItemClick

您的代碼將是這樣的:

listView.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      MyAdapter adapter = (MyAdapter) parent.getAdapter; // use your actual adapter class name here 

      AlertDialog.Builder adb = new AlertDialog.Builder(v.getRootView().getContext()); 
      adb.setTitle("LVSelectedItemExample"); 
      adb.setMessage("Selected Item is = " + adapter.getItem(position)); 
      adb.setPositiveButton("Ok", null); 
      adb.show(); 
     } 
    }); 

並確保你在你的適配器有一個getItem正確實施。