我正在使用AdapterView作为ListView,我们可以在其中找到列表视图和EditText的活动。
当我们点击ListView的一个元素时,我们转到第二个活动,并且我想将所选项目的数据作为intent中的额外项目发送。此数据将显示在EditText中
我尝试了这段代码,但它似乎不起作用,它始终显示EditText的默认值。
这是适配器视图的代码:
public class adapterq extends ArrayAdapter<Questionaire> {
Bitmap image;
public adapterq(Context context, ArrayList<Questionaire> questionaires) {
super(context, 0, questionaires);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Questionaire c = getItem(position);
View convertView2;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.customquest, parent, false);
convertView2 = LayoutInflater.from(getContext()).inflate(R.layout.activity_main, parent, false);
}else{
convertView2 = (View) convertView.getTag();
}
TextView q = (TextView) convertView.findViewById(R.id.textView1);
final EditText name = (EditText) convertView2.findViewById(R.id.editText1);
q.setText(c.getLabel());
convertView.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(getContext(), Questions.class);
intent.putExtra("name", name.getText().toString());
intent.putExtra("category", c.getCode());
getContext().startActivity(intent);
v.setBackgroundResource(R.drawable.yourbackground);
((Activity) getContext()).overridePendingTransition(R.anim.right_slide_in, R.anim.right_slide_out);
}
});
convertView.setTag(convertView2);
return convertView;
}
}
答案 0 :(得分:1)
您应该使用ListView.setOnItemClickListener()
代替。回调返回单击列表中的位置和视图。该位置用于检索数据对象Questionere
。
可以使用EditText
检索findViewById()
。
ListView list = (ListView) findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Questionaire item = list.getItemAtPosition(position);
String name = ((EditText) findViewById(R.id.editText1)).getText().toString();
Intent intent = new Intent();
intent.setClass(getContext(), Questions.class);
intent.putExtra("name", name);
intent.putExtra("category", item.getCode());
startActivity(intent);
}
});