Listviewをクリックした後に間違った値が表示されます。Listviewに正しい値が与えられていません
フロー:スピナーはリストビューの値を選択したら、
a)は、私がスピナーを持っているがAsynctaskの助けを使用して変更されます。リストビューでマイアダプタMicListAdapterで
protected void onPostExecute(List<MIC_OrderDetails> lst) {
dialog.setMessage("Inflating Data...");
if (lst.get(lst.size() - 1).getResult().contains(("success"))) {
ordList.addAll(lst);
ordList.notifyDataSetChanged();
dialog.dismiss();
/*
* ordList = new MicListAdapter(InventoryCount.this, lst);
* lstView.setAdapter(ordList);
*
* dialog.dismiss();
*/
} else {
dialog.dismiss();
toastText.setText("Problem in loading Items");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 410);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(toastLayout);
toast.show();
}
}
を項目をロードする
AsynctaskのOnPostMethod方法は、直接呼び出しが私のために
public void addAll(List<MIC_OrderDetails> lst) {
this.alllst.clear();
this.alllst.addAll(lst);
this.notifyDataSetChanged();
}
B)が動作していないので、私はのaddAll()メソッドを作成しましたListviewをクリックすると、値がカスタムダイアログボックスに表示されません。つまり、
私のスピナーに2つの値(1 & 2)。初めてSpinnerに2を設定したときにSpinnerに1が表示され、2に変更されたListViewの値が「2」になりますが、Listviewをクリックすると「1 "ここで
は、リストビューのためのコードスニペットは、これは私のフルアダプタクラスです
lstView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
MIC_OrderDetails list_obj = new MIC_OrderDetails();
list_obj = (MIC_OrderDetails) lstView
.getItemAtPosition(position);
ItemNo = list_obj.getItemNumber();
Desc = list_obj.getItemDescription();
PickSeq = list_obj.getPickSeq();
StockUnit = list_obj.getUnit();
qtyonHand = list_obj.getQtyonHand();// This value gives
// QOHand
qtyCount = list_obj.getQtyCount();
loc = mspinner.getItemAtPosition(
mspinner.getSelectedItemPosition()).toString();
medtItem.setText(ItemNo);
medtdesc.setText(Desc);
qtyCount = supporter.getCurrencyFormat(Double
.parseDouble(qtyCount));
medtQtyCount.setText(qtyCount);
medtuom.setText(StockUnit);
medtQtyCountTotal.setText(qtyCount);
.....
});
をonclickのです。
public class MicListAdapter extends ArrayAdapter<MIC_OrderDetails> implements
Filterable {
List<MIC_OrderDetails> alllst;
List<MIC_OrderDetails> list;
List<MIC_OrderDetails> filterlst;
// = new ArrayList<MIC_OrderDetails>();
Context context;
TextView txtitem;
TextView txtdesc;
TextView txtpick;
TextView txtQtyonHand;
TextView txtQtyCounted;
TextView txtuom;
/* TextView txtstatus; */
private ModelFilter filter;
@Override
public Filter getFilter() {
if (filter == null) {
filter = new ModelFilter();
}
return filter;
}
public MicListAdapter(Context context, List<MIC_OrderDetails> value) {
// TODO Auto-generated constructor stub
super(context, R.layout.six_textview, value);
this.context = context;
this.list = value;
this.alllst = new ArrayList<MIC_OrderDetails>(list);
this.filterlst = new ArrayList<MIC_OrderDetails>(alllst);
getFilter();
}
public void addAll(List<MIC_OrderDetails> lst) {
this.alllst.clear();
this.alllst.addAll(lst);
this.notifyDataSetChanged();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return alllst.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
View view = null;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(
R.layout.six_textview, parent, false);
txtitem = (TextView) convertView.findViewById(R.id.txt_fullItemNo);
txtdesc = (TextView) convertView.findViewById(R.id.txt_fullDesc);
txtpick = (TextView) convertView.findViewById(R.id.txt_fullLoc);
txtQtyonHand = (TextView) convertView
.findViewById(R.id.txt_fullord);
txtQtyCounted = (TextView) convertView
.findViewById(R.id.txt_fullrecqty);
txtuom = (TextView) convertView.findViewById(R.id.txt_fullUom);
convertView.setTag(new OrdersViewHolder(txtitem, txtdesc, txtpick,
txtQtyonHand, txtQtyCounted, txtuom));
} else {
OrdersViewHolder viewHolder = (OrdersViewHolder) convertView
.getTag();
}
OrdersViewHolder holder = (OrdersViewHolder) convertView.getTag();
holder.txtitem.setText(alllst.get(position).getItemNumber());
holder.txtdesc.setText(alllst.get(position).getItemDescription());
holder.txtpick.setText(alllst.get(position).getPickSeq());
holder.txtQtyonHand.setText((alllst.get(position).getQtyonHand()));
/*
* String o=(lst.get(position).getQtyShiped()).toString(); String
* u=lst.get(position).getUom();
*/
holder.txtQtyCounted.setText((alllst.get(position).getQtyCount()));
holder.txtuom.setText(alllst.get(position).getUnit());
/* holder.txtstatus.setText(alllst.get(position).getStatus()); */
return convertView;
}
/** Holds child views for one row. */
static class OrdersViewHolder {
TextView txtitem;
TextView txtdesc;
TextView txtpick;
TextView txtQtyonHand;
TextView txtQtyCounted;
TextView txtuom;
/* TextView txtstatus; */
public OrdersViewHolder(TextView txtitem, TextView txtdesc,
TextView txtpick, TextView txtQtyonHand,
TextView txtQtyCounted, TextView txtuom) {
// TODO Auto-generated constructor stub
this.txtitem = txtitem;
this.txtdesc = txtdesc;
this.txtpick = txtpick;
this.txtQtyonHand = txtQtyonHand;
this.txtQtyCounted = txtQtyCounted;
this.txtuom = txtuom;
/* this.txtstatus=txtstatus; */
}
このシナリオでは、私のために発生し、なぜ誰もが...代わりに、クリックした項目の値を取得するためのonItemClick
メソッドの最初のパラメータであるlstView
使用arg0
使用しての事前
Asynctask
を延長している外部のクラスにアクセスするためのグローバル変数としてlst
を宣言する必要があるが、それは変更さbefore.nothingと同じ持続します。 –@PraneshSahu:[OK]をクリックしてアダプターのコードが –
示して私の更新MicListAdapterフルアダプタクラスの@ρяσѕρєяを確認してくださいK –