setText в пользовательском представлении - PullRequest
1 голос
/ 17 марта 2011

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

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/file_image_holder"
android:layout_width="110dip"
android:layout_height="110dip"
android:src="@drawable/pdf_icon" />
<TextView
android:id="@+id/file_name_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="File Name Here" />
</LinearLayout>

Что я пытаюсь достичь, это

FileView fileView = new FileView(this)
fileView.setText("text")

Ответы [ 4 ]

3 голосов
/ 17 марта 2011
TextView filename = (TextView)findViewById(R.id.file_name_holder);
filename.setText("someFile.exe");

В другой заметке ... вы можете использовать подсказку, чтобы дать вашим пользователям серое текстовое приглашение, которое им не придется стирать при вводе имени файла. В вашем XML замените android:text на android:hint для вашего TextView.

1 голос
/ 30 июля 2015

здесь no_internet - это представление xml.в представлении включения содержится текстовое представление.Вы можете установить текст в том числе пользовательский вид текста, как ....

 no_internet     = view.findViewById(R.id.no_internet);
  ((TextView) no_internet).setText(R.string.no_internet_connection);
1 голос
/ 17 марта 2011

замените «Имя файла здесь» на «ТЕКСТ, КОТОРЫЙ ВЫ ХОТИТЕ» или @ string / name_of_string_in_string.xml

или путь java, на который кто-то другой ответил

0 голосов
/ 17 марта 2011

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

Например: если вы хотите создать кнопку с помощью пользовательского макета, то

  1. Создайте класс, который расширяет макет.

    public class MyCustomView extends RelativeLayout {
    
            private Button customBtn;
    
            public MyCustomView(Context context, AttributeSet attrs) {
                 super(context, attrs);
                         init(context);
            }
            private void init(Context context) {
                 customBtn = new Button(context);
                 customBtn.setText("Button");
                 RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
                 buttonParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                 buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                 addView(customBtn, buttonParams);
        }
    }
    

Если вы хотите добавить каких-либо слушателей, внедрите и переопределите его.

2. Добавьте этот пользовательский макет в ваш XML как: (Мой MyCustomView присутствуетв пакете com.android)

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

            <com.android.MyCustomView android:background="@android:color/white" android:id="@+id/myLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:layout_centerHorizontal="true" android:clickable="true" />

    </RelativeLayout>

Пожалуйста, попробуйте, если вам это нужно.

...