я создал пользовательский элемент управления ListView с ImageView, два TextViews и кнопки Теперь я столкнулся вопрос, когда я пытаюсь установить onClicklistner на эту кнопку я хочу другой способ, чтобы сделать для каждой кнопкиПользовательская кнопка ListView с помощью OnClickListener
вот мой код для customlistview class Я использовал временный onclicklistner для этой кнопки, который показывает тост «Bought» , что я хочу сделать, так это то, что после нажатия кнопки я должен вернуть цену на еду.
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-statement с 30 'if else', я могу показать вам образец, но почему бы вам не объяснить (измените вопрос) и сообщите нам, почему вам нужен 30-й метод, мы можем показать вам лучший способ сделать это, с меньшим количеством методов для реализации – Yazan