2016-02-21 2 views
0

Добрый день, всем нужна помощь для этого кода. Допустим, например, у меня есть ниже TextView «Телефон Владелец» и EditText «Джерри Смит» (etJerrySmith является редактируемые = «истинный»)редактировать текст на постоянный

Так я бегу приложение, я могу изменить «Джерри Смит» в любое имя, но когда Я снова закрываю и запускаю, он возвращается к «Джерри Смит». Есть ли способ изменить «Джерри Смит» на «Meeseeks» и сохранить постоянный?

content_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:showIn="@layout/activity_main" tools:context=".MainActivity"> 



<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText1" 

    android:layout_marginTop="130dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    /> 

<Button 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_below="@+id/editText1" 
    android:layout_centerHorizontal="true" 
    android:onClick="saveName"/> 

</RelativeLayout> 

MainActivity.java

package com.lowellnc.edittopermanent; 

import android.content.Context; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 


EditText editText1; 

public static final String MyPREFERENCES = "MyPrefs"; 
public static final String Name = "nameKey"; 
SharedPreferences sharedpreferences; 
String name; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    editText1 = (EditText) findViewById(R.id.editText1); 

    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); 
    name = settings.getString("name", "USE_ANY_DEFAULT_NAME_HERE"); 
    editText1.setText(name); 
} 

public void saveName(View v) { 
    SharedPreferences.Editor editor = sharedpreferences.edit(); 
    String n = editText1.getText().toString(); 
    editor.putString(Name, n); 
    editor.commit(); 
} 

}

я редактировал его, и вот мой код в настоящее время

ответ

0

Вы должны сохранить вновь введенное значение в общие предпочтения при нажатии кнопки или при закрытии операции и при открытии приложения ation, внутри onCreate() этого действия вы должны прочитать значение из общих настроек, а затем установить его для редактирования текста. Таким образом, вы сможете установить новые значения в вышеупомянутый edittext.

Если вы используете кнопку, код будет что-то вроде:

public class MainActivity extends AppCompatActivity { 

EditText editText1; 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String Name = "nameKey"; 
SharedPreferences sharedpreferences; 
String name; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
    editText1 = (EditText)findViewById(R.id.editText1); 
    name = sharedpreferences.getString("nameKey", "USE_ANY_DEFAULT_NAME_HERE"); 
    editText1.setText(name); 
} 

public void saveName(View v){ 
    SharedPreferences.Editor editor = sharedpreferences.edit(); 
    String n = editText1.getText().toString(); 
    editor.putString(Name, n); 
    editor.commit(); 
    Toast.makeText(MainActivity.this,"Hey, value you entered is saved", Toast.LENGTH_SHORT).show(); 
} 

Вы можете создать кнопку в макете и установите SAVENAME() на OnClick из XML этой кнопки. Затем всякий раз, когда вы нажимаете кнопку, она захватывает значение edittext и сохраняет его в общих настройках. Теперь, когда вы снова откроете приложение, onCreate() будет считывать значения из общих настроек и устанавливать его на edittext.

Надеюсь, это вам поможет.

+0

любой шанс, я могу получить бит кода мат? Я не очень хорош в этом андроиде или java –

+0

Конечно! Я просто писал для этого небольшой код. У меня нет настроек Android на моем ноутбуке. Простите меня, если в коде есть ошибки, но код, вероятно, будет таким же. Позвольте мне знать, если это помогает. –

+0

Спасибо, я очень ценю это. –

Смежные вопросы