2016-06-08 125 views
1

我有一個ArrayList有一些字符串變量,我有一個自定義ArrayAdapter,我從ArrayList填充。現在,當列表中顯示的列表和列表中的項目被點擊時,我希望程序做些事情,但我不知道該怎麼做。我看了幾個例子,但我不明白在哪裏放置代碼。所以這裏是我的代碼,你能告訴我該怎麼做,在哪裏做?處理點擊自定義ArrayAdapter和ListView

MainActivity.java

public class MainActivity extends AppCompatActivity { 
private ArrayAdapter<String> listAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    updateList(listOfItems); 
} 
public void updateList(ArrayList<String> possibleWords){ 
    listAdapter = new CustomListAdapter(this, R.layout.custom_list,possibleWords); 
    android.R.layout.simple_list_item_1, possibleWords); 
    final ListView listView = (ListView)findViewById(R.id.listview); 
    listView.setAdapter(listAdapter); 
} 

CustomListAdapter.java類

public class CustomListAdapter extends ArrayAdapter { 

private Context mContext; 
private int id; 
private List<String> items ; 

public CustomListAdapter(Context context, int textViewResourceId , List<String> list) 
{ 
    super(context, textViewResourceId, list); 
    mContext = context; 
    id = textViewResourceId; 
    items = list ; 
} 

@Override 
public View getView(int position, View v, ViewGroup parent) 
{ 
    View mView = v ; 
    if(mView == null){ 
     LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     mView = vi.inflate(id, null); 
    } 
    return mView; 
} 
} 

這裏是輸出的樣子

Sample output

所以,當 「行爲」 的樣本圖像或「貓」被點擊,我想做點什麼,但我不知道如何處理點擊以及將代碼放在我想要做的事情上。

回答

0

把下面的代碼在您的主要活動

listview.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View v, int position, 
      long arg3) 
     { 
       //do your work here 
     } 
    }); 
-2

請只需添加點擊監聽器,適配器像如下

mView.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 
+0

這將不允許被點擊個別項目雖然, –

相關問題