java - Android studio 中的首选项设置如何将 EditTextPreference 中的值连接到 TextView

标签 java android-layout android-fragments settings android-preferences

我不知道如何从 EditTextPreference 中查找值。就像当我在 Edittextpreference 中写一个数字时,我希望该数字显示在我的片段firSTLayout xml中的T​​extview“numTxt”中:(。

Blockquote The base for the settings menu is the "Settings Activity" where you get in Android studio, new>Activity>Settings Activity.so in the xml pref_general.xml is where the EditTextPreference is.

请查看要编辑文本字段的 imgur 照片。 Image-imgur

这是首选项 xml 文件。

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <SwitchPreference
        android:defaultValue="true"
        android:key="example_switch"
        android:summary="@string/pref_description_social_recommendations"
        android:title="@string/pref_title_social_recommendations" />

    <!-- NOTE: EditTextPreference accepts EditText attributes. -->
    <!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. -->




    <EditTextPreference
        android:capitalize="words"
        android:defaultValue="@string/pref_default_display_name"
        android:inputType="textCapWords"
        android:key="example_text"
        android:id="@+id/textnrisettings"
        android:maxLines="1"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:title="@string/pref_title_display_name" />

    <!-- NOTE: Hide buttons to simplify the UI. Users can touch outside the dialog to
         dismiss it. -->
    <!-- NOTE: ListPreference's summary should be set to its value by the activity code. -->
    <ListPreference
        android:defaultValue="-1"
        android:entries="@array/pref_example_list_titles"
        android:entryValues="@array/pref_example_list_values"
        android:key="example_list"
        android:negativeButtonText="@null"
        android:positiveButtonText="@null"
        android:title="@string/pref_title_add_friends_to_messages" />

</PreferenceScreen>

这是第一个布局 xml 的 java 文件

public class FirstFragment extends Fragment {



    private View view;

    public FirstFragment(){


    }
    Button sendSMS;
    Button sendSMSaon;
    Button sendSMSaoff;
    Button sendSMSrela1;
    Button sendSMSrela2;
    EditText msgTxt;
    EditText aonTxt;
    EditText aoffTxt;
    EditText rela1txt;
    EditText rela2txt;
    Button taframnummer;

//Down below in Textview numTxt is where the value from the Edittextpreference will be shown

    TextView numTxt;
    



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first_layout, container, false);



        sendSMS = (Button)view.findViewById(R.id.skicka);
        sendSMSaon = (Button)view.findViewById(R.id.skickaaon);
        sendSMSaoff = (Button)view.findViewById(R.id.skickaaoff);
        sendSMSrela1 = (Button)view.findViewById(R.id.skickarela1);
        sendSMSrela2 = (Button)view.findViewById(R.id.skickarela2);

        msgTxt = (EditText)view.findViewById(R.id.Textmeddelande);
        numTxt = (TextView)view.findViewById(R.id.nummer);
        aonTxt = (EditText)view.findViewById(R.id.aon);
        aoffTxt = (EditText)view.findViewById(R.id.aoff);
        rela1txt = (EditText)view.findViewById(R.id.rela1txt);
        rela2txt = (EditText)view.findViewById(R.id.relä2txt);
        taframnummer = (Button) view.findViewById(R.id.taframnummer);




        msgTxt.setVisibility(View.INVISIBLE);
        aonTxt.setVisibility(View.INVISIBLE);
        aoffTxt.setVisibility(View.INVISIBLE);
        rela1txt.setVisibility(View.INVISIBLE);
        rela2txt.setVisibility(View.INVISIBLE);




        sendSMSaoff.setOnClickListener(new View.OnClickListener() {
                                           @Override
                                           public void onClick(View v) {
                                               String mymsgaoff = aoffTxt.getText().toString();
                                               String theNumber = numTxt.getText().toString();
                                               sendMsg(theNumber, mymsgaoff);
                                           }

                                       }

        );

        sendSMSaon.setOnClickListener(new View.OnClickListener() {
                                          @Override
                                          public void onClick(View v) {
                                              String mymsgaon = aonTxt.getText().toString();
                                              String theNumber = numTxt.getText().toString();
                                              sendMsg(theNumber, mymsgaon);
                                          }

                                      }







        );
        sendSMS.setOnClickListener(new View.OnClickListener() {
                                       @Override
                                       public void onClick(View v) {
                                           String myMsg = msgTxt.getText().toString();
                                           String theNumber = numTxt.getText().toString();
                                           sendMsg(theNumber, myMsg);
                                       }

                                   }
        );
        sendSMSrela1.setOnClickListener(new View.OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                                String myMsgrela1 = rela1txt.getText().toString();
                                                String theNumber = numTxt.getText().toString();
                                                sendMsg(theNumber, myMsgrela1);
                                            }

                                        }
        );
        sendSMSrela2.setOnClickListener(new View.OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                                String mymsgrela2 = rela2txt.getText().toString();
                                                String theNumber = numTxt.getText().toString();
                                                sendMsg(theNumber, mymsgrela2);
                                            }

                                        }







        );

        return view;
    }



    private void sendMsg(String theNumber, String myMsg)
    {
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(theNumber, null, myMsg, null, null);

    }


}

最佳答案

我在您的代码中没有看到任何文本字段,如果您想将值复制到其他 Activity (屏幕),您必须使用保存数字

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("numTxt", numTxt.getText()); 
editor.commit(); 

并使用

在其他 Activity 中检索号码
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); String restoredText = prefs.getString("numTxt", null); 
TextView textView = (TextView) findViewById(R.id.textViewName); //your textField?
textView.setText(restoredText);    
//or with EditText 
//EditText editText = (EditText) findViewById(R.id.editTextName);
//editText.setText(restoredText);

关于java - Android studio 中的首选项设置如何将 EditTextPreference 中的值连接到 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476429/

相关文章:

java - Apache Poi for Word - 使用 TextAlignment 创建自定义样式

java - 说明 jtabbedpane 中当前显示 jpanel 内容的方法

android - main.xml文件不可访问/可访问

android - LinearLayout 中的 ListView 不可见

android - 如何在 Activity 中成功地将内容显示为来自 RunningFragment 类的 Fragment?

android - 如何管理 PreferenceFragment 中的分隔符?

java - (var) 无法解析为类型

java - registerKeyboardAction(...) 和 getInputMap().put(...) + getActionMap().put(...) 有什么区别?

android - 根据所选选项卡显示和隐藏 ActionBar 中的项目

java - 滑动选项卡时出错 - Android 应用程序