2017-07-07 8 views
-3

私は学生がテストを試してみることができる生徒向けのAndroidアプリを開発中です。ArrayAdapterから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に設定しているときに、その質問のマークをアクティビティに渡したいと思います。 私はこれのための解決策を見つけませんでした。 あなたのArrayAdapter次の操作を行うことができますでその後

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

次のようにあなたのActivityにパブリックメソッドを作成することができ、事前にあなたの助け

答えて

1

をありがとう

private YourActivity yourActivity; 

public YourArrayAdapter(YourActivity yourActivity) { 

    this.yourActivity = yourActivity; 

} 

それであなたの中でgetView()

yourActivity.setMarks(marks); 
+0

ありがとうございました。あなたのソリューションは機能しました。しかし、私は1つの問題があります。私は 'getActivity.setMarks(marks)'を 'getView()'と呼んでいますが、 'getView()'はすべての項目に対して2回呼び出します。 – Taimoor

+1

解決策がうまく働いてうれしいです。しかし、getView()を複数回呼び出すクエリでは、現在の質問がトピックから外れないように別の質問をすることをお勧めします。また、現在の質問に対する解決策が働いたと感じる場合は、回答を受け入れてください。ありがとう:)また、次の手順を実行してください。 https://stackoverflow.com/questions/2872996/best-way-to-handle-multiple-getview-calls-from-inside-an-adapter – sri

関連する問題