自定义视图中的setText

时间:2011-03-17 03:21:50

标签: android text custom-view

我已经在线教程创建了一个自定义类。它工作正常,但我想要做的是让我可以设置视图的文本,就像我可以任何其他视图一样。这是怎么完成的。这是自定义视图的

<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 个答案:

答案 0 :(得分:3)

TextView filename = (TextView)findViewById(R.id.file_name_holder);
filename.setText("someFile.exe");

另一方面......您可以使用提示为用户提供一个灰色的文本提示,输入文件名时不必擦除。在您的XML中,将android:text替换为android:hint,用于TextView。

答案 1 :(得分:1)

将“File Name Here”替换为“TEXT YOU WANT”或@ string / name_of_string_in_string.xml

或java方式,其他人回答

答案 2 :(得分:1)

这里no_internet包含xml视图。在包含视图中包含文本视图。您可以在包含自定义文本视图中设置文本,如....

 no_internet     = view.findViewById(R.id.no_internet);
  ((TextView) no_internet).setText(R.string.no_internet_connection);

答案 3 :(得分:0)

我不明白你的全部要求。但是如果你想创建一个自定义视图,你应该做以下事情:

例如:如果您想使用自定义布局创建按钮,则

  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. 如果要添加任何侦听器,请实现并覆盖它。

    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>
    

    如果您需要,请尝试一下。