在我的Android项目中,我有三个类:
第一个List类包含一个登录按钮和2个分别用于用户名和密码的EditText框
代码如下:
signin.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
EditText etxt_user = (EditText) findViewById(R.id.usereditlog);
t_id = etxt_user.getText().toString();
EditText etxt_password = (EditText) findViewById(R.id.pwdeditlog);
password = etxt_password.getText().toString();
}
})
第二类是App,它扩展了Application
class App extends Application
{
List session = new List();
public String getUsername()
{
return session.t_id;
}
public void setUsername(String username)
{
session.t_id = username;
}
public String getPassword()
{
return session.password;
}
public void setPassword(String password)
{
session.password = password;
}
}
第三类是Utils,其中我在检索在List类初始执行期间输入的用户名和密码时面临问题
public class Utils extends Activity
{
public static List mySessionObject = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button signin = (Button) findViewById(R.id.regsubmitbtn);
signin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Utils.mySessionObject = new List();
//some extra initalization, for example setting userId
App app = (App) getApplication();
String username = app.getUsername();
String password= app.getPassword();
}
});
}
}
我面临的问题是从我的第三类检索用户名和密码。由于某些原因,它不能正常工作
您需要在manifest文件中指定应用程序类的名称,如下所示
<application android:label="@string/app_name" android:name="App" android:icon="@drawable/icon">
和像下面这样初始化变量....
((App)getApplication()).setUsername(name);
和使用下面的行
检索String name= ((App)getApplication()).getUsername();