我是Android新手,我如何从主活动中传递ListView中的TextView数据和图像,以便在另一个活动中设置TextView中的数据来查看它。 ListView侦听器上的此代码。
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra("MobileName",adapter.getItem(position).toString());
startActivity(intent);
}
});
这是我的适配器方法,
@Override
public Object getItem(int position) {
return emps.get(position);
}
这是我想要显示数据的活动,
id = findViewById(R.id.textOne1);
name = findViewById(R.id.textTwo2);
id.setText(getIntent());
name.setText();
名称和 id 是另一种布局中的TextView,我想从主要活动中的数据填充它, 如何从主活动中获取每个TextView的数据以设置 id 和 name 。
这是我的适配器
public MyAdapter(List<Employee> emps,Context context){
this.emps=emps;
this.context=context;
this.empFilters=emps;
}
@Override
public int getCount() {
return emps.size();
}
@Override
public Object getItem(int position) {
return emps.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@ Override
public View getView(int position, View convertView, ViewGroup parent) {
View myView=null;
if (convertView==null) {
LayoutInflater inflater = LayoutInflater.from(context);
myView = inflater.inflate(R.layout.for_list_view, parent, false);
ViewHolder vh=new ViewHolder();
vh.idText=myView.findViewById(R.id.id);
vh.nameText=myView.findViewById(R.id.name);
vh.imageView=myView.findViewById(R.id.image);
myView.setTag(vh);
} else
myView=convertView;
Employee e=emps.get(position);
ViewHolder vh = (ViewHolder)myView.getTag();
vh.idText.setText(e.getId()+"");
vh.nameText.setText(e.getName());
vh.imageView.setImageResource(e.getImg());
return myView;
}
答案 0 :(得分:0)
你需要使用适当的方法和放置Extra时使用的密钥从Intent中获取额外的内容。
e.g。 name.setText();
(而不是id.setText(getIntent());
)。
关于获取 ID 的信息不足,因此innerHTML
将无法使用: -
答案 1 :(得分:0)
有多种方法可以执行此操作,具体取决于您声明数据对象的位置。 假设您有一个ListView中显示的数据对象列表。所以你的Activity类有: -
int[]
这是你的数据pojo: -
List<ListItemHolder> data = new ArrayList<>();
ListView lv;
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra("MobileId", data.get(position).getId());
intent.putExtra("MobileName", data.get(position).getName());
startActivity(intent);
}
});
现在在第二个活动中,将代码更改为: -
class ListItemHolder{
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我目前无法访问Android Studio,因此您可能需要进行一些修改才能使其正常运行。