2015-07-20 25 views
1

從我的服務器拉出150個問題。我怎麼似乎無法得到從每個位置選擇的收音機組中的單選按鈕的結果。另外,當數字1選擇1個按鈕時,讓我們說,然後像數字5也有同樣的結果。每行有多個收音機的列表視圖

生病後我的代碼現在

customtestadapter

import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 
import java.util.ArrayList; 

public class customtestadapter extends BaseAdapter{ 
private ArrayList<testquestionlist> data; 

String questionrewrite; 





public customtestadapter(final ArrayList<testquestionlist> data) 
    { 
     this.data=data; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 
@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // convert view = design 

    ViewHolder viewHolder; 
    if(convertView==null) 
    { 
     convertView=LayoutInflater.from(parent.getContext()).inflate(R.layout.test_row,parent, false); 
     viewHolder=new ViewHolder(convertView); 
     convertView.setTag(viewHolder); 
    } else 
     viewHolder = (ViewHolder) convertView.getTag(); 

    viewHolder.questionnumber.setText("Question number : " + data.get(position).getQuestionid()); 
    questionrewrite = data.get(position).getQuestion(); 
    questionrewrite = questionrewrite.replaceAll("1:", System.getProperty("line.separator") + "1:"); 
    questionrewrite = questionrewrite.replaceAll("2:", System.getProperty("line.separator") + "2:"); 
    questionrewrite = questionrewrite.replaceAll("3:", System.getProperty("line.separator") + "3:"); 
    questionrewrite = questionrewrite.replaceAll("4:", System.getProperty("line.separator") + "4:"); 
    questionrewrite = questionrewrite.replaceAll("5:", System.getProperty("line.separator") + "5:"); 
    viewHolder.question.setText(questionrewrite); 
    viewHolder.answeraread.setText(data.get(position).getAnswera()); 
    viewHolder.answerbread.setText(data.get(position).getAnswerb()); 
    viewHolder.answercread.setText(data.get(position).getAnswerc()); 
    viewHolder.answerdread.setText(data.get(position).getAnswerd()); 
    viewHolder.answereread.setText(data.get(position).getAnswere()); 

    viewHolder.answeraread.setChecked(data.get(position).getQuestionanswer() == "A"); 
    viewHolder.answerbread.setChecked(data.get(position).getQuestionanswer() == "B"); 
    viewHolder.answercread.setChecked(data.get(position).getQuestionanswer() == "C"); 
    viewHolder.answerdread.setChecked(data.get(position).getQuestionanswer() == "D"); 
    viewHolder.answereread.setChecked(data.get(position).getQuestionanswer() == "E"); 

    viewHolder.answeraread.setTag(position); 
    viewHolder.answerbread.setTag(position); 
    viewHolder.answercread.setTag(position); 
    viewHolder.answerdread.setTag(position); 
    viewHolder.answereread.setTag(position); 

    convertView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      ViewHolder vh = (ViewHolder) view.getTag(); 
      if (vh.answeraread.isChecked()){ 
       data.get(position).setQuestionanswer("A"); 
      }else if (vh.answerbread.isChecked()){ 
       data.get(position).setQuestionanswer("B"); 
      }else if (vh.answercread.isChecked()){ 
       data.get(position).setQuestionanswer("C"); 
      }else if (vh.answerdread.isChecked()){ 
       data.get(position).setQuestionanswer("D"); 
      }else if (vh.answereread.isChecked()){ 
       data.get(position).setQuestionanswer("E"); 
      } 



      notifyDataSetInvalidated(); 
      notifyDataSetChanged(); 
     } 
    }); 


    return convertView; 
} 



static class ViewHolder { 
    TextView questionnumber; 
    TextView question; 
    RadioButton answeraread; 
    RadioButton answerbread; 
    RadioButton answercread; 
    RadioButton answerdread; 
    RadioButton answereread; 
    RadioGroup questionanswers; 
    public ViewHolder(final View view){ 
     questionnumber = (TextView) view.findViewById(R.id.questionnumber); 
     question=(TextView) view.findViewById(R.id.question); 
     answeraread=(RadioButton) view.findViewById(R.id.answeraread); 
     answerbread=(RadioButton) view.findViewById(R.id.answerbread); 
     answercread=(RadioButton) view.findViewById(R.id.answercread); 
     answerdread=(RadioButton) view.findViewById(R.id.answerdread); 
     answereread=(RadioButton) view.findViewById(R.id.answereread); 
     questionanswers= (RadioGroup) view.findViewById(R.id.radioGroup1); 
    } 
} 


} 
+0

http://tinypic.com/r/auxq8h/8這是我希望發生在ListView 150行,即時創建一個測試,但我需要從每個無線電獲得某種價值,第一一個會等於A第二個B等等,然後它會把它作爲一個變量放在列表中的位置,然後我可以在主線程上將它拉出來驗證它。但我不能讓它正常工作 –

回答

0

解決了!

import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 
import java.util.ArrayList; 



public class customtestadapter extends BaseAdapter 
{ 
private ArrayList<testquestionlist> data; 

String questionrewrite; 





public customtestadapter(final ArrayList<testquestionlist> data) 
    { 
     this.data=data; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 
@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // convert view = design 

    ViewHolder viewHolder; 
    if(convertView==null) 
    { 
     convertView=LayoutInflater.from(parent.getContext()).inflate(R.layout.test_row,parent, false); 
     viewHolder=new ViewHolder(convertView); 
     convertView.setTag(viewHolder); 
    } else 
     viewHolder = (ViewHolder) convertView.getTag(); 

    viewHolder.questionnumber.setText("Question number : " + data.get(position).getQuestionid()); 
    questionrewrite = data.get(position).getQuestion(); 
    questionrewrite = questionrewrite.replaceAll("1:", System.getProperty("line.separator") + "1:"); 
    questionrewrite = questionrewrite.replaceAll("2:", System.getProperty("line.separator") + "2:"); 
    questionrewrite = questionrewrite.replaceAll("3:", System.getProperty("line.separator") + "3:"); 
    questionrewrite = questionrewrite.replaceAll("4:", System.getProperty("line.separator") + "4:"); 
    questionrewrite = questionrewrite.replaceAll("5:", System.getProperty("line.separator") + "5:"); 
    viewHolder.question.setText(questionrewrite); 
    viewHolder.answeraread.setText(data.get(position).getAnswera()); 
    viewHolder.answerbread.setText(data.get(position).getAnswerb()); 
    viewHolder.answercread.setText(data.get(position).getAnswerc()); 
    viewHolder.answerdread.setText(data.get(position).getAnswerd()); 
    viewHolder.answereread.setText(data.get(position).getAnswere()); 
    if (data.get(position).getQuestionanswer() == "A") { 
     viewHolder.answeraread.setChecked(true); 
     viewHolder.answerbread.setChecked(false); 
     viewHolder.answercread.setChecked(false); 
     viewHolder.answerdread.setChecked(false); 
     viewHolder.answereread.setChecked(false); 
     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 
    } 
    if (data.get(position).getQuestionanswer() == "B") { 
     viewHolder.answerbread.setChecked(true); 
     viewHolder.answeraread.setChecked(false); 
     viewHolder.answercread.setChecked(false); 
     viewHolder.answerdread.setChecked(false); 
     viewHolder.answereread.setChecked(false); 
     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 

    } 
    if (data.get(position).getQuestionanswer() == "C") { 
     viewHolder.answercread.setChecked(true); 
     viewHolder.answerbread.setChecked(false); 
     viewHolder.answeraread.setChecked(false); 
     viewHolder.answerdread.setChecked(false); 
     viewHolder.answereread.setChecked(false); 
     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 
    } 
    if (data.get(position).getQuestionanswer() == "D") { 
     viewHolder.answerdread.setChecked(true); 
     viewHolder.answerbread.setChecked(false); 
     viewHolder.answercread.setChecked(false); 
     viewHolder.answeraread.setChecked(false); 
     viewHolder.answereread.setChecked(false); 
     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 
    } 
    if (data.get(position).getQuestionanswer() == "E") { 
     viewHolder.answereread.setChecked(true); 
     viewHolder.answerbread.setChecked(false); 
     viewHolder.answercread.setChecked(false); 
     viewHolder.answerdread.setChecked(false); 
     viewHolder.answeraread.setChecked(false); 
     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 
    } 
    if (data.get(position).getQuestionanswer() == null) { 
     viewHolder.answeraread.setChecked(false); 
     viewHolder.answerbread.setChecked(false); 
     viewHolder.answercread.setChecked(false); 
     viewHolder.answerdread.setChecked(false); 
     viewHolder.answereread.setChecked(false); 

     viewHolder.answeraread.setTag(position); 
     viewHolder.answerbread.setTag(position); 
     viewHolder.answercread.setTag(position); 
     viewHolder.answerdread.setTag(position); 
     viewHolder.answereread.setTag(position); 

    } 



    viewHolder.answeraread.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      data.get(position).setQuestionanswer("A"); 
      customtestadapter.this.notifyDataSetInvalidated(); 
      customtestadapter.this.notifyDataSetChanged(); 
     } 
    }); 
    viewHolder.answerbread.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      data.get(position).setQuestionanswer("B"); 
      customtestadapter.this.notifyDataSetInvalidated(); 
      customtestadapter.this.notifyDataSetChanged(); 
     } 
    }); 
    viewHolder.answercread.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      data.get(position).setQuestionanswer("C"); 
      customtestadapter.this.notifyDataSetInvalidated(); 
      customtestadapter.this.notifyDataSetChanged(); 
     } 
    }); 
    viewHolder.answerdread.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      data.get(position).setQuestionanswer("D"); 
      customtestadapter.this.notifyDataSetInvalidated(); 
      customtestadapter.this.notifyDataSetChanged(); 
     } 
    }); 
    viewHolder.answereread.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      data.get(position).setQuestionanswer("E"); 
      customtestadapter.this.notifyDataSetInvalidated(); 
      customtestadapter.this.notifyDataSetChanged(); 
     } 
    }); 




    return convertView; 
} 



static class ViewHolder { 
    TextView questionnumber; 
    TextView question; 
    RadioButton answeraread; 
    RadioButton answerbread; 
    RadioButton answercread; 
    RadioButton answerdread; 
    RadioButton answereread; 
    RadioGroup questionanswers; 
    public ViewHolder(final View view){ 
     questionnumber = (TextView) view.findViewById(R.id.questionnumber); 
     question=(TextView) view.findViewById(R.id.question); 
     answeraread=(RadioButton) view.findViewById(R.id.answeraread); 
     answerbread=(RadioButton) view.findViewById(R.id.answerbread); 
     answercread=(RadioButton) view.findViewById(R.id.answercread); 
     answerdread=(RadioButton) view.findViewById(R.id.answerdread); 
     answereread=(RadioButton) view.findViewById(R.id.answereread); 
     questionanswers= (RadioGroup) view.findViewById(R.id.radioGroup1); 
    } 
} 


} 
0

的課題在適配器settag,你可以試試下面的項目,因爲它只是一個演示, https://drive.google.com/file/d/0B8QvcdrY5jP0c2p4UmlnNGc2dkU/view?usp=sharing

+0

http://tinypic.com/r/29yp62q/8 這就是它應該看起來像 –

+0

我知道問題是適配器,但我無法弄清楚我在哪裏看該演示,但大聲笑我不知道在哪裏看,因爲我不知道在我的問題在哪裏是我的問題大聲笑 –

+0

問題是在模式,,, settag,然後改變檢查監聽...看到驅動器中的例子提供它是一個小示例 – TheGreat004