RadioButton:按钮前的文字

时间:2013-12-13 05:09:52

标签: java android eclipse user-interface radio-button

请查看以下代码

 <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>

这些单选按钮的文字出现在按钮之后。但是我需要在按钮之前显示文本。我怎样才能做到这一点?请帮忙。

5 个答案:

答案 0 :(得分:1)

您可以通过设置android:button="@null"并将drawable的{​​{1}}添加为RadioButton来实现此目的。您可以使用android:drawableRight更改文本与drawable之间的填充。

android:drawablePadding

答案 1 :(得分:0)

试试这个..

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

答案 2 :(得分:0)

你可以做这样的事情

<RadioButton
     android:id="@+id/radio_pirates"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:button="@null"
     android:drawableRight="@drawable/custom_radio_button"
     android:drawablePadding="5dp"
     android:text="@string/pirates" />

答案 3 :(得分:0)

  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">     

    <TextView
        android:id="@+id/txt_radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="@string/pirates" />

    <RadioButton
        android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@null"
        android:drawableRight="@drawable/custom_radio_button"
        android:layout_alignLeft="@+id/txt_radio_pirates"
        android:layout_marginLeft="80dp"
        android:layout_centerVertical="true"/>
</RelativeLayout>

试试这种方式

答案 4 :(得分:0)

为此,最好使用textview显示文本。但是你需要为它定制适配器。检查该适配器的以下代码作为参考。

class CustomAdapter extends ArrayAdapter<ContactPerson>{
        private ArrayList<ContactPerson> contactList;

        public CustomAdapter(Context context, int textViewResourceId,
                ArrayList<ContactPerson> contactList) {
            super(context, textViewResourceId, contactList);
            // TODO Auto-generated constructor stub
            this.contactList = new ArrayList<ContactPerson>();
            this.contactList.addAll(contactList);
        }

        private class ViewHolder{
            TextView ContactName;
            CheckBox contactCheck;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub

            ViewHolder holder = null;
            Log.v("Convert View", String.valueOf(position));

            if(convertView==null){
                LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                convertView = inflater.inflate(R.layout.checkbox_item, null);

                holder = new ViewHolder();
                holder.ContactName = (TextView) convertView.findViewById(R.id.contact_name);
                holder.contactCheck = (CheckBox) convertView.findViewById(R.id.contact_check);

                convertView.setTag(holder);

                holder.contactCheck.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        CheckBox cb = (CheckBox) v;
                        ContactPerson contact = (ContactPerson) cb.getTag();
//                      Log.i("clicked users", contact.getName());

                        contact.setSelected(cb.isChecked());
                    }
                });
            }
            else{
                holder = (ViewHolder) convertView.getTag();
            }

            ContactPerson contacts = contactList.get(position);
            holder.ContactName.setText("("+contacts.getName()+")");
            holder.contactCheck.setChecked(contacts.isSelected());
            holder.contactCheck.setTag(contacts);
            holder.ContactName.setText(contacts.getName());
            return convertView;
        }
    }

此代码适用于Dinithe d提到的布局。