将值从ArrayAdapter传递给Activity

时间:2017-07-07 07:58:36

标签: android listview android-arrayadapter

我正在为学生开发Android应用,学生可以尝试并查看他们的测试。

我正在活动的列表视图中向学生显示测试。 我还想显示学生的总分和得分。

这是我的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。 我没有找到任何解决方案。 有什么想法吗?

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以在Activity中创建一个公共方法,如下所示:

public void setMarks(int marks){
    this.marks = marks
}

然后在ArrayAdapter中,您可以执行以下操作:

private YourActivity yourActivity;

public YourArrayAdapter(YourActivity yourActivity) {

    this.yourActivity = yourActivity;

}

然后在getView()

yourActivity.setMarks(marks);