我創建了一個自定義列表視圖與ImageView的兩個TextViews現在我面臨的問題,當我嘗試設置onClicklistner到該按鈕 我想每一個按鈕自定義列表視圖使用按鈕OnClickListener
要做不同方法的按鈕這裏是我的代碼爲customlistview類 我已經使用臨時onclicklistner該按鈕,顯示吐司「買」 我想要做的是,點擊按鈕後,我必須返回食物的價格。
class CustomListView extends ArrayAdapter {
public CustomListView(Context context, String[] resource) {
super(context,R.layout.custom_view , resource);
}
Toast toast= null;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater MyInflater = LayoutInflater.from(getContext());
View CustomView = MyInflater.inflate(R.layout.custom_view, parent, false);
String SingleItem= (String) getItem(position);
final TextView text =(TextView)CustomView.findViewById(R.id.Itemname);
final ImageView Image= (ImageView)CustomView.findViewById(R.id.icon);
final TextView Pricetag= (TextView)CustomView.findViewById(R.id.PriceTextView);
text.setText(SingleItem);
switch (SingleItem)
{
case "Chicken":
Image.setImageResource(R.drawable.desert1);
Pricetag.setText("Rs 300");
break;
case "soap":
Image.setImageResource(R.drawable.desert2);
Pricetag.setText("Rs 300");
break;
case "Fish":
Image.setImageResource(R.drawable.fish);
Pricetag.setText("Rs 100");
break;
default:
Image.setImageResource(R.drawable.myimage);
Pricetag.setText("Rs 0.00");
break;
}
final Button Buybutton= (Button)CustomView.findViewById(R.id.BuyButton);
toast = Toast.makeText(getContext(), "", Toast.LENGTH_LONG);
Buybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast.setText("Bought");
toast.show();
}
});
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast.setText(text.getText().toString());
toast.show();
}
});
return CustomView;
}
}
您可以修改您的適配器類與對象的一些自定義的數組(不只是字符串),恩'MyItems'其中將包含項目名稱,以及價格和其他所需的數據進行工作。所以你可以在一個地方工作。回到你的問題,你想打幾個方法?你可以''Buybutton.setTag()'爲一些整數的按鈕,然後'onClick(View v)'基於'v.getTag()'你可以決定調用哪個方法。 – Yazan
你能舉一個有效的例子嗎?這將是非常有用的...我想要更多的30個方法 –
WOW,即使這太多了,你將有1-創建30個方法,2-有一個if語句30'if else'我可以告訴你樣本,但你爲什麼不解釋案件更好(編輯問題)並告訴我們爲什麼你需要30個方法,我們可能會告訴你更好的方法來做到這一點,用更少的方法來實施 – Yazan