0
안녕하세요 여러분, 저는 다중 열리스트 뷰를 채우기 위해 simpleadapter로 확장되는 사용자 지정 목록 어댑터 클래스를 사용하고 있습니다. onclick listener 이벤트를 각 열의 textview에 설정했지만 해당 textview 및 모든 요소와 연관된 행에서 데이터를 표시 할 다른 의도로 값을 검색 할 수 없습니다. 이제이 코드를 구현할 때 클릭 한 textview의 올바른 값 대신 임의의 정수가 나타납니다.simpleadapter를 사용하여 다른 인 텐트에서 정확한 값을 가져올 수 없습니다.
이 내 사용자 지정 목록 adapter.java 클래스
package com.example.category_wise_colored_newreport;
public class CustomList_adapter extends SimpleAdapter{
private List<Map<String, Object>> itemList;
//private ArrayList<HashMap<String , String>> itemList;
private Context mContext;
String ofc_code="ofc_code ";
String ofc_desg="ofc_desg ";
String ofc_name="ofc_name ";
String dep_name="dep_name ";
String total_comp="total_comp ";
String pending="pending ";
String desposed="disposed ";
String interim="interim ";
String defaulter="defaulter ";
String diposed_perc="disposed_percent ";
String TAG_COLOR1="color1";
String TAG_COLOR2="color2";
String TAG_COLOR3="color3";
String TAG_COLOR4="color4";
String TAG_COLOR5="color5";
ViewHolder holder=null;
public CustomList_adapter(Context context,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to) {
super(context, data, resource, from, to);
// TODO Auto-generated constructor stub
this.itemList=(List<Map<String,Object>>) data;
this.mContext=context;
}
class ViewHolder
{
TextView code;
TextView desg;
TextView name;
TextView dep;
TextView comp;
TextView pend;
TextView disp;
TextView intr;
TextView defl;
TextView dispper;
}
@SuppressWarnings("unused")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater=(LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null)
{
convertView=inflater.inflate(R.layout.listview_routes, null);
holder=new ViewHolder();
holder.code=(TextView)convertView.findViewById(R.id.tv_content);
holder.desg=(TextView)convertView.findViewById(R.id.tv_contet2);
holder.name=(TextView)convertView.findViewById(R.id.tv_contet3);
holder.dep=(TextView)convertView.findViewById(R.id.tv_contet4);
holder.comp=(TextView)convertView.findViewById(R.id.tv_contet5);
holder.disp=(TextView)convertView.findViewById(R.id.tv_contet6);
holder.pend=(TextView)convertView.findViewById(R.id.tv_contet7);
holder.intr=(TextView)convertView.findViewById(R.id.tv_contet8);
holder.defl=(TextView)convertView.findViewById(R.id.tv_contet9);
holder.dispper=(TextView)convertView.findViewById(R.id.tv_contet10);
holder.disp.setTag(position);
holder.disp.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Object pos= v.getTag();
Intent i=new Intent(v.getContext(),MainActivity2.class);
//i.putExtra("X",holder.code.getText().toString());
i.putExtra("X",pos.toString());
v.getContext().startActivity(i);
}
});
convertView.setTag(holder);
}
else
{
holder=(ViewHolder)convertView.getTag();
}
holder.code.setText((CharSequence)itemList.get(position).get(ofc_code));
holder.desg.setText((CharSequence)itemList.get(position).get(ofc_desg));
holder.name.setText((CharSequence)itemList.get(position).get(ofc_name));
holder.dep.setText((CharSequence)itemList.get(position).get(dep_name));
holder.comp.setText((CharSequence)itemList.get(position).get(total_comp));
holder.disp.setText((CharSequence)itemList.get(position).get(desposed));
holder.pend.setText((CharSequence)itemList.get(position).get(pending));
holder.intr.setText((CharSequence)itemList.get(position).get(interim));
holder.defl.setText((CharSequence)itemList.get(position).get(defaulter));
holder.dispper.setText((CharSequence)itemList.get(position).get(diposed_perc));
holder.disp.setBackgroundColor((Integer)itemList.get(position).get(TAG_COLOR1));
holder.pend.setBackgroundColor((Integer)itemList.get(position).get(TAG_COLOR2));
holder.intr.setBackgroundColor((Integer)itemList.get(position).get(TAG_COLOR3));
holder.defl.setBackgroundColor((Integer)itemList.get(position).get(TAG_COLOR4));
holder.dispper.setBackgroundColor((Integer)itemList.get(position).get(TAG_COLOR5));
return super.getView(position, convertView, parent);
}
}
bro @greenapps 솔루션을 시도한 결과 코드에 구현했습니다. 그리고 저는이 위치를 캐스팅합니다. Object position = v.getTage(); 그런 다음이 position.toString()과 같은 문자열로 구문 분석하고 매번 임의의 정수를 던집니다. 수정 된 코드를 볼 수 있습니다. – user3469177
시도해 보셨습니까 :'int position = v.getTag() ;. (내가 생각하는 것을 던져야 해.)'? – greenapps
예 .greenapps v.getTag()가 캐스팅됩니다 .. 정수로 캐스팅되었습니다. 그리고 나서 textview를 클릭하면 각 textview는 나에게 임의의 정수를 제공합니다. – user3469177