Java 在Android Studio中,为什么没有TextViewPreference?

Java 在Android Studio中,为什么没有TextViewPreference?,java,android,android-studio,Java,Android,Android Studio,好的,我想创建一个设置活动。有人告诉我,使用首选项布局会更容易。 我想要一个文本视图,当单击它时,它会执行特定的操作,但是没有文本视图首选项。最接近的是EditTextPreference,它必须将属性“selectable”设置为off,从而使其变为灰色 还有一件事,这些首选项没有ID属性。如果OnClickListeners没有ID,我应该如何将其附加到它们上?试试--> 方法1 创建自定义首选项布局项并在首选项活动中使用:- <?xml version="1.0"

好的,我想创建一个设置活动。有人告诉我,使用首选项布局会更容易。 我想要一个文本视图,当单击它时,它会执行特定的操作,但是没有文本视图首选项。最接近的是EditTextPreference,它必须将属性“selectable”设置为off,从而使其变为灰色

还有一件事,这些首选项没有ID属性。如果OnClickListeners没有ID,我应该如何将其附加到它们上?

试试-->

方法1

创建自定义首选项布局项并在首选项活动中使用:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">

    <TextView android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal" />

  </LinearLayout>
那么对于onCreate()中的java

方法3

您可以这样尝试以在“活动”中获取文本视图:

 View name= ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layouttext, null, false);
将android:id添加到包含layouttext.xml中的
Textview
LinearLayout,即android:id=“@+id/mylayout”


你到底想要什么功能…?你的问题还不清楚…你得到解决方案了吗@Doc给出了什么链接?@Wini我只想在首选项屏幕layoutHi中放置一个TextView。对于方法2,我找不到FindReference()方法,您要扩展到什么<代码>首选项片段
首选项活动
??\第二个。顺便说一句,在公共布尔onPreferenceClick(首选项)中什么是布尔值?单击首选项时调用…..如果单击已处理,则为True…..如果未处理单击,即单击时不执行任何操作-->返回false
<Preference android:title="Acts like a text"
            android:key="@string/myCooltext"
            android:summary="This is a text"/>
Preference text = findPreference(getString(R.string.myCoolText));
text.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {   
                //code for what you want it to do   
                return true;
            }
        });
 View name= ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layouttext, null, false);
 LinearLayout mLayout = (LinearLayout)name.findViewById(R.id.mylayout);
  Textview login = (Textview) footerView.findViewById(R.id.Text);
  login.setOnClickListener(this);