-1

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

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

public RadioGroup showNationalCan(RadioGroup rg,Context context,ImageView iv,String voterNA){ 

    //candidate address as punjab kpk etc 

    if(conn==null){ 

    } 
    try{ 
     RadioButton rb; 
     Statement st=conn.createStatement(); 
     ResultSet rs=st.executeQuery("select * from AM_NATIONAL where ca_na=N'"+voterNA+"'"); 
     while (rs.next()) { 
      rb=new RadioButton(context); 
      rb.setTextColor(Color.BLACK); 
      rb.setId(rs.getInt(1)); 
      rb.setText(rs.getString(2)+"\n"+rs.getString(3)+"\n"); 

      iv=new ImageView(context); 
      byte[] photo=rs.getBytes(4); 
      Bitmap bitmap; 
      bitmap=BitmapFactory.decodeByteArray(photo, 0, photo.length); 
      iv.setImageBitmap(bitmap); 
      iv.setEnabled(false); 


      rg.addView(iv); 
      rg.addView(rb); 
     } 
     rs.close(); 
     st.close(); 

    } catch (SQLException e){ 
     e.printStackTrace(); 
    } 
    return rg; 
} 
+0

Почему мой вопрос понижает голос? Мне нужна причина, пожалуйста. есть ли какие-либо вопросы по моему вопросу? мне нужно знать. может это поможет мне. потому что это не страх делать это без каких-либо оправданий. – Awais

ответ

0

Вот мой собственный ответ, который в настоящее время работает абсолютно совершенным. Я ответил на это здесь, потому что другие могли бы это сделать и могли бы устанавливать изображения непосредственно из внешней базы данных, например SQL.

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 
       // TODO Auto-generated method stub 
       for(int i=0; i<rg.getChildCount();i++) 
       { 
        RadioButton rbtn=(RadioButton)rg.getChildAt(i+1); 
        if(rbtn.getId()==checkedId) 
        { 
         serial=rbtn.getId(); 
         flag=true; 
         return; 
        } 
        else 
        { 
         rbtn.setChecked(false); 
        } 
       } 

      } 
     }); 

Проблема заключалась в том, что радиогруппа имеет вид изображения в нем как дочерний элемент, и это не будет щелкаться в качестве переключателей. Я просто увеличиваю i с i + 1, так как каждый раз он будет получать переключатель.

2

Вы можете установить изображение с помощью свойства drawableRight. Вы будете более подробно из мыслительной ссылки.

http://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableRight

<RadioButton 
     android:id="@+id/radio0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:checked="true" 
     android:drawableRight="@drawable/ic_launcher" 
     android:text="A" > 
    </RadioButton> 

Вы можете использовать это, чтобы динамически добавлять кнопки радио.

RadioGroup rgp= (RadioGroup) findViewById(R.id.radiogroup); 
     RadioGroup.LayoutParams rprms; 

     for(int i=0;i<3;i++){ 
       RadioButton radioButton = new RadioButton(this); 
       radioButton.setText("new"+i); 
       radioButton.setId(i); 
       radioButton.setChecked(true); 
       radioButton.setCompoundDrawables(drwable_left, drwable_top, drwable_right,     drwable_bottom); 
       rprms= new RadioGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
       rgp.addView(radioButton, rprms); 
     } 

Вы можете установить растровое изображение в setCompoundDrawables

setCompoundDrawables(new BitmapDrawable(your_left_bitmap), new BitmapDrawable(your_top_bitmap), new BitmapDrawable(your_right_bitmap), new BitmapDrawable(your_bottom_bitmap)); 

Update:

Bitmap drawable = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 

       radioButton.setCompoundDrawables(new BitmapDrawable(drawable), new BitmapDrawable(drawable), new BitmapDrawable(drawable), new BitmapDrawable(drawable)); 
+0

, но переключатели создаются динамически, а изображения также отображаются в базе данных, которая находится в sql, и я соединяю их через jdbc. я хочу установить их программно – Awais

+0

спасибо за ваш ответ, дорогой @DhrubaBose это очень заметно, потому что никто не отвечает на него. но метод setCompundDrawables используется, когда у нас есть изображения в android drawable не для изображений, которые мы устанавливаем прямо из базы данных, как я. и моя проблема заключалась в том, что из-за просмотра изображения, когда мы щелкаем радиогруппу, чтобы получить приложение с радиокнопкой, он разбился. – Awais

+0

Вы можете использовать растровое изображение в методе setCompoundDrawables. Проверьте мое обновление. –