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>
ため
onCreate()
でsetQuestion()
を呼び出す ヘルプ@Avinashをありがとう。 "カウントに依存してデータを取得する"これを行う方法。私はアンドロイドに新しいです。 – Dikshaグローバル(フィールド)変数をint count = 0にするだけです。 – Avinash
本当にありがとうございました。 :)@Avinash – Diksha