2011-11-28 158 views
0

我正在编写我的第一个android应用程序,并且我想要在整个程序(多个活动)中读取EditText对象。我想在一个屏幕/活动/布局中接收用户的姓名,并在其他几个人的阅读中操作或显示它,所以我发现字符串需要公开和静态,并且应该有一个类与我的全局变量。什么是正确的方法来做到这一点?我试过使用捆绑和其他几种方法,但似乎没有任何工作。全局EditText变量

回答

2

你绝对应该通过意图传递这个值。

 Intent intent = new Intent(getApplicationContext(),NEXTCLASS.class); 
     intent.putExtra("username",mEditText1.getText().toString()); 
     startActivity(intent); 

,然后接受它隔壁班的

 Bundle extras = intent.getExtras(); 
     mEditText1.setText(extras.getString("username")) 

你也可以使用共享偏好,但是我认为这是不必要您的具体情况为您不需要用户名坚持应用程序时关闭了。

更新:

要使用共享的首选项..

SharedPreferences sharedPreferences = getSharedPreferences("myprefs", MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString("username", myusername); 

从共享首选项读...

SharedPreferences sharedPreferences = getSharedPreferences("myprefs", MODE_PRIVATE); 
    String username = sharedPreferences.getString("username", ""); 

使用静态属性

public class utility { 
    public static String USERNAME = "username"; 
} 
的例子

为了调用你不需要t o实例化该类只需从需要它的每个类执行此操作

String username = sharedPreferences.getString(utility.USERNAME, "") 
+0

您是否碰巧有SharedPrefs的示例?持久性是我的下一步,使用共享首选项将是完美的。 – bensherms

+0

我已经使用共享首选项的示例更新了我的答案。 –

+0

谢谢!这看起来很完美!最后一个问题 - 共享pref字符串“username”可以放入一个类中,然后公开,这样我就不必在每个.java文件中重新读取共享前缀了? – bensherms