2013-08-17 45 views
0

我嘗試從ListView中獲取選定的項目,但我不從我的聽衆得到任何輸入反應的ListView setOnItemClickListener不響應

我不明白,在我的日誌從這個代碼任何電話:

public void onItemSelected(AdapterView<?> spinnerReference, 
     View rowReference, int arg2, long arg3) { 

     chooseExercise = itemsList.getSelectedItem().toString(); 
     Log.i("choosed", chooseExercise); 
} 

我適配器:

public void setItemList(String muscle) 
{ 

if (muscle.equals("All")) 
    items = data.getAllExercies(); 
else 
    items = data.getMuscleEx(muscle); 

ArrayAdapter<CharSequence> exerciseAdapter; 

if (items == null || items.length < 1) 
    items = new String[] {}; 

exerciseAdapter = new ArrayAdapter<CharSequence>(this, 
     android.R.layout.simple_spinner_item, items) 
{ 

    @Override 
    public View getView(int position, View convertView, 
      ViewGroup parent) { 

     String text = items[position]; 

     TextView listItem = new TextView(AddWorkOutPage.this); 
     listItem.setBackground(getResources().getDrawable(R.drawable.shape_box)); 
     listItem.setTextSize(18); 
     listItem.setText(text); 
     listItem.setPadding(10, 20, 0, 20);; 
     listItem.setTextColor(Color.BLACK); 

     return listItem; 
    } 
}; 

// Specify the layout to use when the list of choices appears 

// Apply the adapter to the spinner 
searchItemField.setAdapter(exerciseAdapter); 
itemsList.setAdapter(exerciseAdapter); 

} 

我的列表視圖對象代碼:

public void addExerciseDialog() 
    {  
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("Choose exercise"); 

      View prefView = View.inflate(this, R.layout.choose_from_list, null);  

      searchItemField = (AutoCompleteTextView) prefView.findViewById(R.id.searchItemField); 
      itemsList = (ListView) prefView.findViewById(R.id.itemsList); 

      searchItemField.setDropDownHeight(0); 

      searchItemField.addTextChangedListener(this); 

      setItemList(wantedMuscle); 

      itemsList.setOnItemClickListener(this); 

      builder.setPositiveButton("Choose selected", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int whichButton) 
       { 
        Log.i("exercise choose", chooseExercise); 
        dialog.dismiss(); 
       } 
      }); 

      builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int whichButton) 
       { 
        dialog.dismiss(); 
       } 
      }); 

      builder.setNeutralButton("filter", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int whichButton) 
       { 
        createDialog(); 
       } 
      }); 

      builder.setView(prefView); 

      builder.show(); 
    } 

我的對話框XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/White" 
    android:descendantFocusability="beforeDescendants" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:src="@android:drawable/ic_menu_search" /> 

    <ListView 
     android:id="@+id/itemsList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/searchItemField" 
     android:descendantFocusability="beforeDescendants" 
     android:layout_marginTop="5sp" > 

    </ListView> 

    <AutoCompleteTextView 
     android:id="@+id/searchItemField" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true"  
     android:layout_toLeftOf="@+id/imageView1" 
     android:ems="10" > 

     <requestFocus /> 
    </AutoCompleteTextView> 

</RelativeLayout> 
+0

http://cyrilmottier.com/2011/11/23/ listview-tips-tricks-4-add-several-clickable-areas/ – TeeTracker

+0

它是一個不錯的帖子,但我沒有看到我的錯誤在哪裏 – dasdasd

回答

1

您正在使用哪種監聽器到底是什麼? OnItemClickListener有一個方法onItemClick()而不是你的onItemSelected()。我不知道,如果你將工作太,但這個工程:

ListView listview = (ListView) v.findViewById(R.id.itemsList); 
listview.setAdapter(...); 
listview.setOnItemClickListener(new MyOnItemClickListener()); 

而且OnItemClickListener作爲一個內部類:

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

     //Object o = parent.getItemAtPosition(position); 

    } 
} 
相關問題