[英]Custom ListView in an Alert Dialog with buttons
我有一個自定義的listview,每行包含兩個按鈕,我在努力的是這些按鈕的偵聽器。 我的Listview包含在AlertDialog中,這是我擁有的代碼
@Override
public void displayUnders(List<UndersLM> ulm) {
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
ArrayList<UndersLM> undersreturn = new ArrayList<UndersLM>();
final ListView L = new ListView(ctx);
final UndersLM y = new UndersLM();
for (UndersLM aulm : ulm) {
final UndersLM s = new UndersLM();
s.set_id(aulm.get_id());
s.set_cartonid(aulm.get_cartonid());
s.set_sku(aulm.get_sku());
s.set_sentqty(aulm.get_sentqty());
s.set_scannedqty(aulm.get_scannedqty());
undersreturn.add(s);
}
uadaptor = new Unders(ctx, undersreturn);
L.setAdapter(uadaptor);
builder.setView(L);
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object rid = parent.getAdapter().getItem(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
L.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object rid = parent.getAdapter().getItem(position);
}
});
AlertDialog d;
d = builder.create();
d.show();
}
如您所見,我已經在ListView自身上嘗試了ItemClickListerner,並在AlertDialog上嘗試了itemSelected。
我想念什么? 這些都沒有命中對象rid = parent ....行
編輯-實際上不知道該內容-它的片段!
好的,解決了。
基本上,您必須在您的Custom Adaptor中執行此操作(據我所知),因此在我的情況下,此方法有效:
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
final ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.unders, null);
holder = new ViewHolder();
holder.id = (TextView) vi.findViewById(R.id.id);
holder.cartonID = (TextView) vi.findViewById(R.id.cartonID);
holder.Sku = (TextView) vi.findViewById(R.id.Sku);
holder.Sent = (TextView) vi.findViewById(R.id.Sent);
holder.add = (Button) vi.findViewById(R.id.add);
holder.Scanned = (TextView) vi.findViewById(R.id.Scanned);
holder.subtract = (Button) vi.findViewById(R.id.subtract);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if (Lines.size() < -0) {
holder.id.setText("No Unprocessed Deliveries");
} else {
tempValues = null;
tempValues = (UndersLM) Lines.get(position);
holder.id.setText(String.valueOf(tempValues.get_id()));
holder.cartonID.setText(String.valueOf(tempValues.get_cartonid())+ " | ");
holder.Sku.setText(String.valueOf(tempValues.get_sku()) + " | ");
holder.Sent.setText(String.valueOf(tempValues.get_sentqty()) + " | ");
holder.Scanned.setText(String.valueOf(tempValues.get_scannedqty()));
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new underCorrections(ctx,true,tempValues.get_cartonid(),tempValues.get_sku()).execute();
holder.Scanned.setText(String.valueOf(tempValues.get_scannedqty()+1));
}
});
}
return vi;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.