Изображение Android внутри одного выбора - PullRequest
6 голосов
/ 09 июля 2010

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

альтернативный текст http://www.freeimagehosting.net/uploads/bfb1c90d61.png

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 19 июля 2010

Здесь у вас есть рабочее решение. Не мое, но я использовал описанную технику, и она работала. Не забудьте про img.setBounds () , это необходимо!

http://mgmblog.com/2010/06/10/arrayadapter-and-alertdialog-for-single-choice-items/

PS: оригинальный пост не отображает кнопку радио, но мой макет делает. Мой файл однострочного макета XML (animal_row.xml в примере отсутствует) находится здесь:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/miastorow_text"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:paddingLeft="6dip"
android:paddingRight="6dip"
android:textColor="#000"
/>
2 голосов
/ 11 июля 2010

Вы можете переопределить все и создать его с нуля. Сначала создайте xml с описанием содержимого, которое вы хотите. Например:

<!-- test.xml -->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
 android:background="@color/white">
 <ImageView android:id="@+id/ImageView01"
  android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
  android:src="@drawable/facebook"></ImageView>
 <TextView android:id="@+id/TextView01" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_toRightOf="@+id/ImageView01"
  android:text="Facebook" 
            android:textSize="40sp"></TextView>
 <RadioButton android:id="@+id/RadioButton01"
  android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
  android:layout_toRightOf="@+id/TextView01"></RadioButton>
</RelativeLayout>

Затем создайте этот XML-файл, используя диалоговое окно с предупреждением. Вы можете позволить деятельности обрабатывать ваш диалог и просто переопределить onCreateDialog следующим образом:

@Override
protected Dialog onCreateDialog(int id) {
    View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.test, null);
    return new AlertDialog.Builder(MainActivity.this).setView(view).setTitle("Share")
                    .create();
}

Затем вы можете переопределить onClick для сохранения состояния в ваших файлах StaticPreferences. Таким образом, вы получите полный контроль над всеми элементами в вашем представлении.

Последний совет: при создании xml убедитесь, что вы создали максимально плоский макет, чтобы код был оптимизирован. Вы также можете поиграть с макетом списка, чтобы создать что-то вроде этого.

0 голосов
/ 13 июля 2010

Я не работал над этим. Но у меня есть идея объединить три примера демонстраций API.

  1. AlertDialogs
  2. Адаптер SingleChoice
  3. Эффективный адаптер

шаги, которые вы должны сделать:

  • Создать AlertDialog
  • Создайте класс адаптера списка для представления, которое вы хотите получить.
  • Используйте метод SetAdapter для установки ListAdapter.

Пример кода:

new AlertDialog.Builder(MainActivity.this).setTitle("Share")setAdapter(new Listadapterclass(),new DialogInterface.OnClickListener(){

                            @Override
                            public void onClick(DialogInterface arg0,
                                    int arg1) {
                                // TODO Auto-generated method stub
        // the click event on the list item selected                        
                            }})
                .create();

Надеюсь, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...