2016-06-04 4 views
0

У меня есть десять вопросов из моей последовательности. Я хочу сделать,Одноразовая кнопка для Android-студия Android и нажата кнопка записи

1- ответ на проблему (только одна кнопка должна быть нажата)

2- Когда я иду к следующему вопросу, увидеть ответ я щелкнул радиокнопку предыдущего

JAVA класса

public class Sinavsorulari extends Activity { 

    TextView tv_soruNum, tv_soru; 


    RadioButton rb_a, rb_b, rb_c, rb_d; 
    Button btn_sonrakiSoru,btn_oncekiSoru , btn_kaydet; 


    String url = "http://192.168.56.2/soru_cekme.php"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sinav_sorulari); 



     tv_soruNum=(TextView)findViewById(R.id.tv_soruNum); 
     tv_soru=(TextView)findViewById(R.id.tv_soru); 
     btn_oncekiSoru=(Button)findViewById(R.id.btn_oncekiSoru); 
     btn_sonrakiSoru=(Button)findViewById(R.id.btn_sonrakiSoru); 
     btn_kaydet = (Button) findViewById(R.id.btn_kaydet); 
     rb_a = (RadioButton) findViewById(R.id.rb_cevapa); 
     rb_b = (RadioButton) findViewById(R.id.rb_cevapb); 
     rb_c = (RadioButton) findViewById(R.id.rb_cevapc); 
     rb_d = (RadioButton) findViewById(R.id.rb_cevapd); 

     btn_oncekiSoru.setEnabled(false); 
     btn_kaydet.setEnabled(false); 
     btn_kaydet.setVisibility(View.INVISIBLE); 
     new HttpAsyncTask().execute(url); 

    } 

    private class HttpAsyncTask extends AsyncTask<String, Void, String> { 
     @Override 
     protected String doInBackground(String... urls) { 
      return GET(urls[0]); 
     } 
     // onPostExecute displays the results of the AsyncTask. 
     @Override 
     protected void onPostExecute(final String result) { 

      final String[] cevaplar = new String[20]; 
      final JSONArray[] jsonarray = {null}; 
      final String[] soru1 = {null}; 
      final String[] id_soru1 = {null}; 
      final int[] y = {0}; 


      final String[] cvp = new String[24]; 


        try { 
         final int[] t = { 0 }; 
         jsonarray[0] = new JSONArray(result); 


         final JSONObject obj1 = jsonarray[0].getJSONObject(t[0]); 
         id_soru1[0] = obj1.getString("id_soru"); 
         soru1[0] = obj1.getString("baslik_soru"); 


         tv_soruNum.setText(id_soru1[0]); 
         tv_soru.setText(soru1[0]); 



         for (int k = 0; k < 4; k++) { 
          cvp[k] = obj1.getString("icerik_cevap"); 
          if(k == 0){ 
           rb_a.setText(cvp[k]); 
          }else if(k == 1) { 
           rb_b.setText(cvp[k]); 
          }else if(k == 2){ 
           rb_c.setText(cvp[k]); 
          }else if(k == 3){ 
           rb_d.setText(cvp[k]); 
          } 

         } 

         if (rb_a.isSelected()){ 
          cvp[y[0]]="A"; 

         } 
         else if(rb_b.isSelected()){ 
          cvp[y[0]] ="B"; 
          } 
         else if(rb_c.isSelected()){ 
          cvp[y[0]]="C"; 
          } 
         else if(rb_d.isSelected()){ 
          cvp[y[0]]="D"; 
          } 
         else { 
          rb_a.setChecked(false); 
          rb_b.setChecked(false); 
          rb_c.setChecked(false); 
          rb_d.setChecked(false); 
         } 


         final JSONArray finalJsonarray = jsonarray[0]; 
         btn_sonrakiSoru.setOnClickListener(new View.OnClickListener() { 
          @Override 
          public void onClick(View v) { 
           try{ 
           t[0]+=4; 
            y[0] +=1; 

            btn_oncekiSoru.setEnabled(true); 
           JSONObject obj2 = finalJsonarray.getJSONObject(t[0]); 
           id_soru1[0] = obj2.getString("id_soru"); 
           soru1[0] = obj2.getString("baslik_soru"); 


           tv_soruNum.setText(id_soru1[0]); 
           tv_soru.setText(soru1[0]); 
            for (int k = 0; k < 4; k++) { 
             cvp[k] = obj2.getString("icerik_cevap"); 
             if (k == 0) { 
              rb_a.setText(cvp[k]); 
             } else if (k == 1) { 
              rb_b.setText(cvp[k]); 
             } else if (k == 2) { 
              rb_c.setText(cvp[k]); 
             } else if (k == 3) { 
              rb_d.setText(cvp[k]); 
             } 
            } 

            if (rb_a.isSelected()){ 
             cvp[y[0]]="A"; 

            } 
            else if(rb_b.isSelected()){ 
             cvp[y[0]] ="B"; 
            } 
            else if(rb_c.isSelected()){ 
             cvp[y[0]]="C"; 
             } 
            else if(rb_d.isSelected()){ 
             cvp[y[0]]="D"; 
             } 
            else { 
             rb_a.setChecked(false); 
             rb_b.setChecked(false); 
             rb_c.setChecked(false); 
             rb_d.setChecked(false); 
            } 


            int j=t[0] + 4; 
            if(j == finalJsonarray.length()){ 
             btn_sonrakiSoru.setEnabled(false); 
             btn_sonrakiSoru.setVisibility(View.INVISIBLE); 
             btn_kaydet.setVisibility(View.VISIBLE); 
             btn_kaydet.setEnabled(true); 

             btn_kaydet.setOnClickListener(new View.OnClickListener() { 
              @Override 
              public void onClick(View v) { 

               btn_oncekiSoru.setEnabled(false); 


              } 
             }); 
            } 


           }catch (JSONException e) { 
            e.printStackTrace(); 
           } 

          } 
         }); 



         btn_oncekiSoru.setOnClickListener(new View.OnClickListener() { 
          @Override 
          public void onClick(View v) { 
           t[0]-=4; 


           JSONObject obj2 = null; 
           try { 
            obj2 = finalJsonarray.getJSONObject(t[0]); 
            id_soru1[0] = obj2.getString("id_soru"); 
            soru1[0] = obj2.getString("baslik_soru"); 


            tv_soruNum.setText(id_soru1[0]); 
            tv_soru.setText(soru1[0]); 

            for (int k = 0; k <4; k++) { 
             cvp[k] = obj2.getString("icerik_cevap"); 
             if (k == 0) { 
              rb_a.setText(cvp[k]); 
             } else if (k == 1) { 
              rb_b.setText(cvp[k]); 
             } else if (k == 2) { 
              rb_c.setText(cvp[k]); 
             } else if (k == 3) { 
              rb_d.setText(cvp[k]); 
             } 
            } 

            if (rb_a.isSelected()){ 
             cvp[y[0]]="A"; 

            } 
            else if(rb_b.isSelected()){ 
             cvp[y[0]] ="B"; 
            } 
            else if(rb_c.isSelected()){ 
             cvp[y[0]]="C"; 
            } 
            else if(rb_d.isSelected()){ 
             cvp[y[0]]="D"; 
             } 
            else { 
             rb_a.setChecked(false); 
             rb_b.setChecked(false); 
             rb_c.setChecked(false); 
             rb_d.setChecked(false); 
            } 

            if(t[0] == 0){ 
             btn_oncekiSoru.setEnabled(false); 
            } 
           } catch (JSONException e) { 
            e.printStackTrace(); 
           } 

          } 
         }); 


        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 

     } 


    public static String GET(String url){ 
     InputStream inputStream = null; 
     String result = ""; 
     try { 
      // create HttpClient 
      HttpClient httpclient = new DefaultHttpClient(); 
      // make GET request to the given URL 
      HttpResponse httpResponse = httpclient.execute(new HttpGet(url)); 
      // receive response as inputStream 
      inputStream = httpResponse.getEntity().getContent(); 
      // convert inputstream to string 
      if(inputStream != null) 
       result = convertInputStreamToString(inputStream); 
      else 
       result = "Did not work!"; 
     } catch (Exception e) { 
      Log.d("InputStream", e.getLocalizedMessage()); 
     } 
     return result; 
    } 

    private static String convertInputStreamToString(InputStream inputStream) throws IOException { 
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
     String line = ""; 
     String result = ""; 
     while((line = bufferedReader.readLine()) != null) 
      result += line; 
     inputStream.close(); 
     return result; 
    } 


    } 

и мой .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" 
    android:background="#ffffff"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/tv_soruNum" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/tv_soru" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/tv_soruNum" 
     android:layout_toEndOf="@+id/tv_soruNum" 
     android:layout_marginLeft="48dp" 
     android:layout_marginStart="48dp" /> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="3dp" 
     android:layout_below="@+id/tv_soru" 
     android:id="@+id/view" 
     android:layout_marginBottom="25dp" 
     android:layout_marginTop="35dp" 
     android:background="#000000" /> 

    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/rb_cevapa" 
     android:layout_below="@+id/view" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/rb_cevapb" 
     android:layout_below="@+id/rb_cevapa" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="52dp" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/rb_cevapc" 
     android:layout_below="@+id/rb_cevapb" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="68dp" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/rb_cevapd" 
     android:layout_below="@+id/rb_cevapc" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="68dp" 
     android:checked="false" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Oncekı" 
     android:id="@+id/btn_oncekiSoru" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/btn_sonrakiSoru" 
     android:layout_alignTop="@+id/btn_oncekiSoru" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:text="Sonraki" /> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Kaydet" 
     android:id="@+id/btn_kaydet" 
     android:layout_alignTop="@+id/btn_sonrakiSoru" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 


</RelativeLayout> 

enter image description here

Спасибо за помощь мне ..

+0

400 строк коды, 0 комментариев в коде. В чем вопрос? –

ответ

0

Для RadioButton проблемы необходимо добавить RadioGroup как на примере ниже.

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <RadioButton android:id="@+id/radio_pirates" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/pirates" 
     android:onClick="onRadioButtonClicked"/> 
    <RadioButton android:id="@+id/radio_ninjas" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/ninjas" 
     android:onClick="onRadioButtonClicked"/> 
</RadioGroup> 

Для отображения выбранного RadioButton вы можете использовать Toast.

+0

Я использую радиогруппу. Но, как сохранить, когда я нажимаю переключатель? –

0

Применение RadioGrouprefer here

Пример

activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:padding="20dp"> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="How do you like the quality of our tutorials?" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<RadioGroup 
    android:id="@+id/radioGroup" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <RadioButton 
     android:id="@+id/radioButton1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Excellent " /> 

    <RadioButton 
     android:id="@+id/radioButton2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Satisfactory" /> 

    <RadioButton 
     android:id="@+id/radioButton3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Below Average" /> 
</RadioGroup> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <Button 
     android:id="@+id/clearBtn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:onClick="onClear" 
     android:text="Clear " /> 

    <Button 
     android:id="@+id/submitBtn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:onClick="onSubmit" 
     android:text="Submit" /> 
</LinearLayout> 
</LinearLayout> 

MainActivity.java

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
private RadioGroup radioGroup; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    /* Initialize Radio Group and attach click handler */ 
    radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 
    radioGroup.clearCheck(); 

    /* Attach CheckedChangeListener to radio group */ 
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      RadioButton rb = (RadioButton) group.findViewById(checkedId); 
      if(null!=rb && checkedId > -1){ 
       Toast.makeText(MainActivity.this, rb.getText(), Toast.LENGTH_SHORT).show(); 
      } 

     } 
    }); 
} 

public void onClear(View v) { 
    /* Clears all selected radio buttons to default */ 
    radioGroup.clearCheck(); 
} 

public void onSubmit(View v) { 
    RadioButton rb = (RadioButton) radioGroup.findViewById(radioGroup.getCheckedRadioButtonId()); 
    Toast.makeText(MainActivity.this, rb.getText(), Toast.LENGTH_SHORT).show(); 
} 
} 

Это может вам помочь.

+0

Как сохранить, когда я нажимаю переключатель? –

+0

Сделайте свое сохранение @ onCheckedChanged –

0

Для вашей проблемы вы должны использовать RadioGroup.

A RadioGroup - это в основном группа RadioButtons, так что только один может быть выбран во время. Хотя вы можете настроить его, чтобы разрешить несколько вариантов, но по умолчанию он позволяет вам выбирать один RadioButton за раз.

Укажите, что такое RadioGroup, которое содержит 4 RadioButtons для 4 вариантов.

radioGroup = (RadioGroup) findViewById(R.id.myRadioGroup); 

     radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      @Override 

      public void onCheckedChanged(RadioGroup group, int checkedId) { 

       // find which radio button is selected 

       switch(checkedId){ 
       case R.id.rb_option1: //1st option selected 
        break; 
       case R.id.rb_option2: //2nd option selected 
        break; 
       case R.id.rb_option3: //3rd option selected 
        break; 
       case R.id.rb_option4: //4th option selected 
        break; 

       } 
      } 
     }); 

Надеется, что это помогает :)

Смежные вопросы