2017-07-15 48 views
0

我想制作一个测验应用程序,并希望从数组列表中获取对象在文本视图中设置一组。我想改变文本视图的内容以及单击按钮上的单选按钮。我尽力做到这一点,但仍然无法完成工作。如何从arraylist中获取对象并在文本视图上设置

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.Iterator; 

public class MainActivity extends AppCompatActivity { 
TextView tv; 
RadioGroup radioGroup; 
RadioButton radioButton; 
Button btnnext; 
int id,j; 
Questions q1,q2,q3,q4,q; 
ArrayList<Questions> list; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    tv=(TextView)findViewById(R.id.ques); 
    radioGroup=(RadioGroup)findViewById(R.id.rg1); 
    btnnext=(Button)findViewById(R.id.button); 
    id=radioGroup.getCheckedRadioButtonId(); 
    radioButton=(RadioButton)findViewById(id); 
    q1=new Questions(); 
    q1.setQues("Ques 1.What is the full form of SMTP?"); 
    q1.setOption1("Simple Mail Transfer Protocol"); 
    q1.setOption2("Simple Mail Text Person"); 
    q1.setOption3("Simple Message Transfer Protocol"); 
    q1.setOption4("Sound Mail Text Pattern"); 

    q2=new Questions(); 
    q2.setQues("Ques 2.What is the full form of TCP?"); 
    q2.setOption1("Transfer Control Protocol"); 
    q2.setOption2("Text Control Protocol"); 
    q2.setOption3("Transfer Communication Person"); 
    q2.setOption4("Text Control Person"); 

    q3=new Questions(); 
    q3.setQues("Ques 3.What DNS stands for?"); 
    q3.setOption1("Domain Name System"); 
    q3.setOption2("Domain Name Server"); 
    q3.setOption3("Distributed Name Server"); 
    q3.setOption4("Distributed Name System"); 

    q4=new Questions(); 
    q4.setQues("Ques 4.What is a port?"); 
    q4.setOption1("Numbered Socket"); 
    q4.setOption2("Protocol"); 
    q4.setOption3("Server"); 
    q4.setOption4("Path"); 
    list=new ArrayList<>(); 
    list.add(q1); 
    list.add(q2); 
    list.add(q3); 
    list.add(q4); 

    String one=q1.getQues(); 
    tv.setText(one); 
    ((RadioButton) radioGroup.getChildAt(0)).setText(q1.getOption1()); 
    ((RadioButton) radioGroup.getChildAt(1)).setText(q1.getOption2()); 
    ((RadioButton) radioGroup.getChildAt(2)).setText(q1.getOption3()); 
    ((RadioButton) radioGroup.getChildAt(3)).setText(q1.getOption4()); 
    String Ques[]=new String[4]; 

    /* for(int i=0;i<list.size();i++) 
    { 
     Questions q=list.get(i); 
     tv.setText(q.getQues()); 
    }*/ 
    btnnext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      while(j<=list.size()){ 
       q=list.get(j); 
       tv.setText(q.getQues()); 
       j++; 
      } 

     } 
    }); 

} 
} 
Questions.java 
public class Questions { 

private String ques; 
private String option1; 
private String option2; 
private String option3; 
private String option4; 

public String getQues() { 
    return ques; 
} 

public void setQues(String ques) { 
    this.ques = ques; 
} 

public String getOption1() { 
    return option1; 
} 

public void setOption1(String option1) { 
    this.option1 = option1; 
} 

public String getOption2() { 
    return option2; 
} 

public void setOption2(String option2) { 
    this.option2 = option2; 
} 

public String getOption3() { 
    return option3; 
} 

public void setOption3(String option3) { 
    this.option3 = option3; 
} 

public String getOption4() { 
    return option4; 
} 

public void setOption4(String option4) { 
    this.option4 = option4; 
} 
} 

main.xml 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:text="Test Paper 1" 
    android:textSize="25dp" 
    android:id="@+id/test" 
    android:textAlignment="center" 
    android:layout_marginTop="30dp"/> 

<LinearLayout 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_below="@+id/test" 
    android:layout_marginTop="30dp" 
    android:id="@+id/queslay"> 
    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:textSize="18dp" 
     android:padding="18dip" 
     android:id="@+id/ques" 
     android:textColor="#ffffff"></TextView> 
    <RadioGroup 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:id="@+id/rg1" 
     android:layout_marginLeft="30dp" 
     android:layout_weight="0.4"> 
     <RadioButton 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/rg1ansl" 
      /> 
     <RadioButton 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/rg1ans2" 
      /> 
     <RadioButton 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/rg1ans3" 
      /> 
     <RadioButton 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/rg1ans4" 
      /> 
    </RadioGroup> 
</LinearLayout> 
<Button 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:text="Next" 
    android:layout_marginLeft="230dp" 
    android:layout_below="@+id/queslay" 
    android:id="@+id/button" /> 

<Button 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/queslay" 
    android:text="Previous" 
    android:layout_marginLeft="30dp" 
    android:id="@+id/button2" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/button2" 
    android:layout_marginTop="20dp" 
    android:id="@+id/textView" 
    android:layout_centerHorizontal="true"/> 
</RelativeLayout> 

回答

0

第一模型的所有使用构造 使int count =0; ASA全局变量

 public Questions(String ques, String option1, String option2, String option3, String option4) { 
      this.ques = ques; 
      this.option1 = option1; 
      this.option2 = option2; 
      this.option3 = option3; 
      this.option4 = option4; 
     } 


and get your data on depend on the count 
then on click of the next button click on count 

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

       if(count<=list.size()){ 

        count++; 
        setQuestion(); 
       } 

      } 
     }); 
public void setQuestion(){ 
tv.setText(list.get(count).getQuestion()); 
((RadioButton) radioGroup.getChildAt(0)).setText(list.get(count).getOption1()); 
    ((RadioButton) radioGroup.getChildAt(1)).setText(list.get(count).getOption2()); 
    ((RadioButton) radioGroup.getChildAt(2)).setText(list.get(count).getOption3()); 
    ((RadioButton) radioGroup.getChildAt(3)).setText(list.get(count).getOption4()); 
} 

setQuestion()设置你的TextView和单选按钮的内容,并呼吁setQuestion()onCreate() 0位置的问题

+0

感谢@Avinash的帮助。 “让你的数据取决于计数”如何做到这一点。我是Android新手。 – Diksha

+0

只是一个全局(字段)变量int count = 0; – Avinash

+0

非常感谢你,它完美的工作。 :)@Avinash – Diksha

相关问题