在我的应用程序中,我有一个Adapter
可以扩展的BaseAdapter
. 在那个类里面有方法
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.childitem, parent, false);
}
Product p = getProduct(position);
((TextView) view.findViewById(R.id.tvDescr)).setText(p.name);
((TextView) view.findViewById(R.id.tvPrice)).setText(p.price + "");
((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.image);
CheckBox cbBuy = (CheckBox) view.findViewById(R.id.cbBox);
cbBuy.setOnCheckedChangeListener(myCheckChangList);
cbBuy.setTag(position);
cbBuy.setChecked(p.box);
return view;
}
在MainActivity
我的应用程序中,我尝试使用 customAlertDialog
和两个EditText
s 进行输入。它无法正常工作,并且已获得View
用于访问我的资源的建议。
void newItemInput(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
final View v = inflater.inflate(R.layout.dialog_signin, null);
builder.setView(v);
builder.setTitle("");
builder.setMessage("");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
EditText item_name = (EditText) v.findViewById(R.id.item_name);
EditText item_price =(EditText) v.findViewById(R.id.item_price);
String text = item_name.getText().toString();
String text_price = item_price.getText().toString();
int price = Integer.parseInt(text_price);
// Do something with value!
products.add(new Product(text, price, R.drawable.unread, false));
item_name.setText("");
item_price.setText("");
}
});
Dialog
现在,当我在以下语句中插入数据以将其用作参数时: products.add(new Product(text, price, R.drawable.unread, false)); ...它的行为方式很奇怪。是否因为View
适配器调用和对话框之间的矛盾而发生?如果是这样,可以做些什么来解决它?