将值从 ArrayAdapter 传递到 Activity
Passing value from ArrayAdapter to Activity
我正在为学生开发一个 Android 应用程序,学生可以在其中尝试和查看他们的测试。
我正在 Activity 的列表视图中向学生显示测试。
我也想显示学生的总分和获得的分数。
这是我的 ArrayAdapter 的 getView 函数。
public View getView(int position, View convertView, ViewGroup parent) {
Text_Questions questions = getItem(position);
ViewHolder v = null;
View view = convertView;
try {
if (convertView == null) {
v = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate(R.layout.text_questions_list_item, parent, false);
v.title = (TextView)convertView.findViewById(R.id.title);
v.marks = (TextView)convertView.findViewById(R.id.marks);
v.answer = (TextView)convertView.findViewById(R.id.answer);
v.std_answer = (TextView)convertView.findViewById(R.id.std_answer);
convertView.setTag(v);
}
else {
v = (ViewHolder) convertView.getTag();
}
v.title.setText("Q: "+questions.getTitle());
v.std_answer.setText("Ans: "+ questions.getStd_answer());
v.answer.setText("Correct: " + questions.getAnswer());
if(questions.getAnswer().toLowerCase().equals(questions.getStd_answer().toLowerCase())){
v.marks.setText(""+questions.getMarks() + "/" + questions.getMarks());
}else{
v.marks.setText("0/" + questions.getMarks());
}
return convertView;
}catch (Exception e) {
return null;
}
}
在将项目设置为 ListView 时,我想将该问题的标记传递给我的 Activity。
我没有找到任何解决方案。
有什么想法吗?
提前感谢您的帮助
您可以在 Activity
中创建一个 public 方法,如下所示:
public void setMarks(int marks){
this.marks = marks
}
然后在您的 ArrayAdapter
中您可以执行以下操作:
private YourActivity yourActivity;
public YourArrayAdapter(YourActivity yourActivity) {
this.yourActivity = yourActivity;
}
然后在你的 getView()
:
yourActivity.setMarks(marks);
我正在为学生开发一个 Android 应用程序,学生可以在其中尝试和查看他们的测试。
我正在 Activity 的列表视图中向学生显示测试。 我也想显示学生的总分和获得的分数。
这是我的 ArrayAdapter 的 getView 函数。
public View getView(int position, View convertView, ViewGroup parent) {
Text_Questions questions = getItem(position);
ViewHolder v = null;
View view = convertView;
try {
if (convertView == null) {
v = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate(R.layout.text_questions_list_item, parent, false);
v.title = (TextView)convertView.findViewById(R.id.title);
v.marks = (TextView)convertView.findViewById(R.id.marks);
v.answer = (TextView)convertView.findViewById(R.id.answer);
v.std_answer = (TextView)convertView.findViewById(R.id.std_answer);
convertView.setTag(v);
}
else {
v = (ViewHolder) convertView.getTag();
}
v.title.setText("Q: "+questions.getTitle());
v.std_answer.setText("Ans: "+ questions.getStd_answer());
v.answer.setText("Correct: " + questions.getAnswer());
if(questions.getAnswer().toLowerCase().equals(questions.getStd_answer().toLowerCase())){
v.marks.setText(""+questions.getMarks() + "/" + questions.getMarks());
}else{
v.marks.setText("0/" + questions.getMarks());
}
return convertView;
}catch (Exception e) {
return null;
}
}
在将项目设置为 ListView 时,我想将该问题的标记传递给我的 Activity。 我没有找到任何解决方案。 有什么想法吗?
提前感谢您的帮助
您可以在 Activity
中创建一个 public 方法,如下所示:
public void setMarks(int marks){
this.marks = marks
}
然后在您的 ArrayAdapter
中您可以执行以下操作:
private YourActivity yourActivity;
public YourArrayAdapter(YourActivity yourActivity) {
this.yourActivity = yourActivity;
}
然后在你的 getView()
:
yourActivity.setMarks(marks);