将值从 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);