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

时间:2016-09-13 18:07:38

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

我不知道如何从EditTextPreference中找到值。就像我在Edittextpreference中写一个数字一样,我希望我的片段中的数字显示在我的片段firstlayout xml中的“numTxt”:(。

  

块引用   设置菜单的基础是您在Android Studio中的“设置活动”,新的>活动>设置Activity.so在xml pref_general.xml中是EditTextPreference的位置。

请查看将要编辑文本字段的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);

    }


}

1 个答案:

答案 0 :(得分:2)

我在代码中看不到任何文本字段,如果要将值复制到另一个活动(屏幕),则必须使用

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

并使用

检索其他活动中的号码
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);