2016-03-17 3 views
1

Может кто-то, пожалуйста, помогите мне отредактировать следующий код, чтобы он сохранил информацию, введенную в edittext, а затем после возобновления приложения она автоматически отобразит текст, сохраненный в поле edittext. Я попробовал учебники SharedPreferences, но до сих пор мне не удалось заставить его работать.Android Edittext Sharedpreferences

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 


public class MainActivity extends Activity { 

EditText txtLink; 
Button btnOpenLink; 
String defaultLink; 
String secondLink; 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String Name = "nameKey"; 
SharedPreferences sharedpreferences; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

defaultLink = "http://"; 
secondLink = ".whatver.com"; 

txtLink = (EditText) findViewById(R.id.editText); 
btnOpenLink = (Button) findViewById(R.id.button); 
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
btnOpenLink.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View arg0) { 
    String server = txtLink.getText().toString(); 
    SharedPreferences.Editor editor = sharedpreferences.edit(); 
    editor.putString(Name, server); 
    editor.commit(); 
    if(!TextUtils.isEmpty(server)){ 
     Intent intent=new Intent(MainActivity.this,webactivity.class); 
     intent.setData(Uri.parse(defaultLink+server+secondLink)); 
     startActivity(intent); 
    }else{ 
     Toast.makeText(MainActivity.this, "Please enter your server name.", Toast.LENGTH_LONG).show(); 
    } 
} 
}); 
} 

} 
+0

Пожалуйста, вставьте код настроек, который вы пробовали. –

+0

Я пробовал все в этом учебнике http://www.tutorialspoint.com/android/android_shared_preferences.htm – carnick

+0

Что бы вы ни пробовали, пожалуйста, вставьте это. –

ответ

0

Я исправил его, позвонив по этому телефону

sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
    txtLink.setText(sharedpreferences.getString(Name, "")); 
0

Проверьте сохраненные предпочтения и если имеющиеся загрузить их, после чего вывести их в TextView

Пример:

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

defaultLink = "http://"; 
secondLink = ".whatver.com"; 

txtLink = (EditText) findViewById(R.id.editText); 
btnOpenLink = (Button) findViewById(R.id.button); 

checkIfPreferencesAvaliable(); 

if(defaultLink!=null && secondLink!=null){ 
    txtLink.setText(defaultLink+secondLink); 
} 

defaultLink = "http://"; 
secondLink = ".whatver.com"; 

void checkIfPreferencesAvaliable(){ 
    SharedPreferences preferences = getPreferences(Activity.MODE_PRIVATE); 
    defaultLink = preferences.getStr("mydefaultLink", null); 
    secondLink = preferences.getStr("mysecondLink", null); 
} 
0

В вашем onCreate(), проверьте, если у вас есть уже есть значения ваши предпочтения -

String savedVal = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE).getString(Name, null); 

if(savedVal == null){ //This means you don't have the saved values in your prefs file 
//Do whatever you want to 
} else{ 
//Use "savedVal" anyway you want 
} 
+0

Я новичок в этом, вы можете показать мне, где это положить, и как это загрузит сохраненную строку? – carnick

+0

В вашем методе onCreate() вставьте код, который я предоставил, и если вы хотите установить его в TextView, вы можете установить его с помощью «savedVal». –

+0

Что я хотел бы, чтобы это сделать, это если (savedVal == NULL) {ничего не делать } еще { показать это в поле EditText } Как я могу сделать это произошло? – carnick

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