2017-07-15 23 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とラジオボタンの内容を設定し、0位置の質問

+0

ためonCreate()setQuestion()を呼び出す ヘルプ@Avinashをありがとう。 "カウントに依存してデータを取得する"これを行う方法。私はアンドロイドに新しいです。 – Diksha

+0

グローバル(フィールド)変数をint count = 0にするだけです。 – Avinash

+0

本当にありがとうございました。 :)@Avinash – Diksha

関連する問題