2015-05-11 2 views
1

Я использую радиокамеру в LayoutInflater, в настоящее время он выбирает все значения в представлении, я хочу выбрать только один из всех в списке, как я могу это сделать?Принудительный радиобудильник, чтобы выбрать только одно значение

Рабочий код:

MainActivity.java

package com.androidhub4you.multilevellistview; 

import java.util.ArrayList; 

import com.androidhub4you.multilevellistview.Product.SubCategory; 
import com.androidhub4you.multilevellistview.Product.SubCategory.ItemList; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
/** 
* 
* @author manish 
* 
*/ 
public class MainActivity extends Activity { 

    private ArrayList<Product>pProductArrayList; 
    private ArrayList<SubCategory>pSubItemArrayList; 
    private ArrayList<SubCategory>pSubItemArrayList2; 
    private LinearLayout mLinearListView; 
    boolean isFirstViewClick=false; 
    boolean isSecondViewClick=false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mLinearListView = (LinearLayout) findViewById(R.id.linear_listview); 

     /** 
     * 
     */ 

     ArrayList<ItemList> mItemListArray=new ArrayList<ItemList>(); 
     mItemListArray.add(new ItemList("Red", "20")); 
     mItemListArray.add(new ItemList("Blue", "50")); 
     mItemListArray.add(new ItemList("Red", "20")); 
     mItemListArray.add(new ItemList("Blue", "50")); 

     ArrayList<ItemList> mItemListArray2=new ArrayList<ItemList>(); 
     mItemListArray2.add(new ItemList("Pant", "2000")); 
     mItemListArray2.add(new ItemList("Shirt", "1000")); 
     mItemListArray2.add(new ItemList("Pant", "2000")); 
     mItemListArray2.add(new ItemList("Shirt", "1000")); 
     mItemListArray2.add(new ItemList("Pant", "2000")); 
     mItemListArray2.add(new ItemList("Shirt", "1000")); 


     /** 
     * 
     */ 
     pSubItemArrayList=new ArrayList<SubCategory>(); 
     pSubItemArrayList2=new ArrayList<SubCategory>(); 
     pSubItemArrayList.add(new SubCategory("Color", mItemListArray)); 
     pSubItemArrayList2.add(new SubCategory("Cloths", mItemListArray2)); 
     pSubItemArrayList.add(new SubCategory("Color", mItemListArray)); 
     pSubItemArrayList2.add(new SubCategory("Cloths", mItemListArray2)); 
     /** 
     * 
     */ 

     pProductArrayList=new ArrayList<Product>(); 
     pProductArrayList.add(new Product("Emotions", pSubItemArrayList)); 
     pProductArrayList.add(new Product("Garments", pSubItemArrayList2)); 


     /*** 
     * adding item into listview 
     */ 
     for (int i = 0; i < pProductArrayList.size(); i++) { 

      LayoutInflater inflater = null; 
      inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View mLinearView = inflater.inflate(R.layout.row_first, null); 

      final TextView mProductName = (TextView) mLinearView.findViewById(R.id.textViewName); 
      final RelativeLayout mLinearFirstArrow=(RelativeLayout)mLinearView.findViewById(R.id.linearFirst); 
      final ImageView mImageArrowFirst=(ImageView)mLinearView.findViewById(R.id.imageFirstArrow); 
      final LinearLayout mLinearScrollSecond=(LinearLayout)mLinearView.findViewById(R.id.linear_scroll); 

      if(isFirstViewClick==false){ 
      mLinearScrollSecond.setVisibility(View.GONE); 
      mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt); 
      } 
      else{ 
       mLinearScrollSecond.setVisibility(View.VISIBLE); 
       mImageArrowFirst.setBackgroundResource(R.drawable.arw_down); 
      } 

      mLinearFirstArrow.setOnTouchListener(new OnTouchListener() { 

       @Override 
       public boolean onTouch(View v, MotionEvent event) { 

        if(isFirstViewClick==false){ 
         isFirstViewClick=true; 
         mImageArrowFirst.setBackgroundResource(R.drawable.arw_down); 
         mLinearScrollSecond.setVisibility(View.VISIBLE); 

        }else{ 
         isFirstViewClick=false; 
         mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt); 
         mLinearScrollSecond.setVisibility(View.GONE); 
        } 
        return false; 
       } 
      }); 


      final String name = pProductArrayList.get(i).getpName(); 
      mProductName.setText(name); 

      /** 
      * 
      */ 
      for (int j = 0; j < pProductArrayList.get(i).getmSubCategoryList().size(); j++) { 

       LayoutInflater inflater2 = null; 
       inflater2 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View mLinearView2 = inflater2.inflate(R.layout.row_second, null); 

       TextView mSubItemName = (TextView) mLinearView2.findViewById(R.id.textViewTitle); 
       final RelativeLayout mLinearSecondArrow=(RelativeLayout)mLinearView2.findViewById(R.id.linearSecond); 
       final ImageView mImageArrowSecond=(ImageView)mLinearView2.findViewById(R.id.imageSecondArrow); 
       final LinearLayout mLinearScrollThird=(LinearLayout)mLinearView2.findViewById(R.id.linear_scroll_third); 

       if(isSecondViewClick==false){ 
        mLinearScrollThird.setVisibility(View.GONE); 
        mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt); 
        } 
        else{ 
         mLinearScrollThird.setVisibility(View.VISIBLE); 
         mImageArrowSecond.setBackgroundResource(R.drawable.arw_down); 
        } 

       mLinearSecondArrow.setOnTouchListener(new OnTouchListener() { 

         @Override 
         public boolean onTouch(View v, MotionEvent event) { 

          if(isSecondViewClick==false){ 
           isSecondViewClick=true; 
           mImageArrowSecond.setBackgroundResource(R.drawable.arw_down); 
           mLinearScrollThird.setVisibility(View.VISIBLE); 

          }else{ 
           isSecondViewClick=false; 
           mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt); 
           mLinearScrollThird.setVisibility(View.GONE);  
          } 
          return false; 
         } 
        }); 


       final String catName = pProductArrayList.get(i).getmSubCategoryList().get(j).getpSubCatName(); 
       mSubItemName.setText(catName); 
       /** 
       * 
       */ 
        for (int k = 0; k < pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().size(); k++) { 

         LayoutInflater inflater3 = null; 
         inflater3 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         View mLinearView3 = inflater3.inflate(R.layout.row_third, null); 

         TextView mItemName = (TextView) mLinearView3.findViewById(R.id.textViewItemName); 
         TextView mItemPrice = (TextView) mLinearView3.findViewById(R.id.textViewItemPrice); 
         final String itemName = pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().get(k).getItemName(); 
         final String itemPrice = pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().get(k).getItemPrice(); 
         mItemName.setText(itemName); 
         mItemPrice.setText(itemPrice); 

         mLinearScrollThird.addView(mLinearView3); 
        } 

       mLinearScrollSecond.addView(mLinearView2); 

      } 

      mLinearListView.addView(mLinearView); 
     }  
    } 

} 

Product.java

package com.androidhub4you.multilevellistview; 

import java.util.ArrayList; 

/** 
* 
* first level item 
* 
*/ 
public class Product { 

    private String pName; 

    private ArrayList<SubCategory> mSubCategoryList; 

    public Product(String pName, ArrayList<SubCategory> mSubCategoryList) { 
     super(); 
     this.pName = pName; 
     this.mSubCategoryList = mSubCategoryList; 
    } 

    public String getpName() { 
     return pName; 
    } 

    public void setpName(String pName) { 
     this.pName = pName; 
    } 

    public ArrayList<SubCategory> getmSubCategoryList() { 
     return mSubCategoryList; 
    } 

    public void setmSubCategoryList(ArrayList<SubCategory> mSubCategoryList) { 
     this.mSubCategoryList = mSubCategoryList; 
    } 

    /** 
    * 
    * second level item 
    * 
    */ 

    public static class SubCategory { 

     private String pSubCatName; 
     private ArrayList<ItemList> mItemListArray; 

     public SubCategory(String pSubCatName, 
       ArrayList<ItemList> mItemListArray) { 
      super(); 
      this.pSubCatName = pSubCatName; 
      this.mItemListArray = mItemListArray; 
     } 

     public String getpSubCatName() { 
      return pSubCatName; 
     } 

     public void setpSubCatName(String pSubCatName) { 
      this.pSubCatName = pSubCatName; 
     } 

     public ArrayList<ItemList> getmItemListArray() { 
      return mItemListArray; 
     } 

     public void setmItemListArray(ArrayList<ItemList> mItemListArray) { 
      this.mItemListArray = mItemListArray; 
     } 

     /** 
     * 
     * third level item 
     * 
     */ 
     public static class ItemList { 

      private String itemName; 
      private String itemPrice; 

      public ItemList(String itemName, String itemPrice) { 
       super(); 
       this.itemName = itemName; 
       this.itemPrice = itemPrice; 
      } 

      public String getItemName() { 
       return itemName; 
      } 

      public void setItemName(String itemName) { 
       this.itemName = itemName; 
      } 

      public String getItemPrice() { 
       return itemPrice; 
      } 

      public void setItemPrice(String itemPrice) { 
       this.itemPrice = itemPrice; 
      } 

     } 

    } 

} 

activity_main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/linear_listview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" /> 

</ScrollView> 

row_third.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/white" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textViewItemName" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/background_light" 
      android:text="TextView" 
      android:textColor="@android:color/black" 
      android:textSize="18sp" /> 

     <TextView 
      android:id="@+id/textViewItemPrice" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/background_light" 
      android:text="TextView" 
      android:textColor="@android:color/black" 
      android:textSize="18sp" /> 

    <RadioButton 
    android:id="@+id/selection" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="4px" 
    android:layout_marginRight="10px" 
    android:layout_alignParentRight="true" 
    /> 


     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:background="@android:color/darker_gray" /> 

    </LinearLayout> 
+0

Добавить радиокниги в радиогруппе – WISHY

+0

Да, это правильно! Радиогруппа - это решение. – Prachi

+0

@WISHY: Но его единственный радиообъектив я повторяю, я не хочу жестко кодировать радиообъекты в радиогруппе – Christine

ответ

-1

Использование RadioGroup для RadioButton

+2

Это должен быть комментарий –

+1

@Gangulian Не имеет 50 репутации So ... – GreenRobo

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – Cristik

0
<?xml version="1.0" encoding="utf-8"?> 
<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> 

кнопка включения радио нажмите

public void onRadioButtonClicked(View view) { 
    // Is the button now checked? 
    boolean checked = ((RadioButton) view).isChecked(); 

    // Check which radio button was clicked 
    switch(view.getId()) { 
     case R.id.radio_pirates: 
      if (checked) 
       // Pirates are the best 
      break; 
     case R.id.radio_ninjas: 
      if (checked) 
       // Ninjas rule 
      break; 
    } 
} 
+0

Но я не жестко кодирую свои радиообъективы, это динамично – Christine

+0

Почему вы не используете CustomArraryAdapter, используя BaseAdapter для своего списка, следуйте этому http://www.androidhive.info/2014/07/android-custom-listview-with-image -and-text-using-volley/вы получите представление –

0

Вы можете проверить программно если RadioButton проверяется, и снимите его перед проверкой на выбранный с помощью radiobutton1.isChecked() в для цикла.