0

我有这个接受用户输入的代码,我基本上想从用户那里获取一个小型联系人应用程序的姓名和电话号码。当用户在 EditText 字段中输入数据时,我提取数据并执行此操作 -

        String _name,_phone;
        _name=name.getText().toString();
        _phone=phone.getText().toString();
        Intent in = new Intent(this, DatabaseHandler.class);
        in.putExtra("name", _name);
        in.putExtra("phone", _phone);
        startActivity(in);

但另一个类不是从 Activity 类继承的,而是从“SQLiteOpenHelper”继承的

公共类 DatabaseHandler 扩展 SQLiteOpenHelper

所以方法

 getIntent().getExtras().get("name"); 
不起作用,可能是因为该类不是从 Activity 或其他东西继承的。那么,如何将数据从第一个活动共享到名为“DatabaseHandler”的第二个活动

4

3 回答 3

0

而不是使用意图,为什么不使用共享首选项在其中放置任何您想要的值,这样您就可以在应用程序中的任何地方获得不需要的活动,只需将上下文传递给该类以使用共享首选项.

于 2013-02-20T07:38:46.897 回答
0

您可以使用两种技术: 1. 借助Application课程。或 2. 寻求帮助SharedPreference

我将讲述第二种方法。因为它易于使用。

SQLiteOpenHelper在打电话之前在你的课堂上DatabaseHandler写下:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(_context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", your_username);
editor.putInt("password", your_password);
editor.commit();

现在打电话DatabaseHandler,也过去了_context

现在在你的DatabaseHandler课堂上写下这个:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String username = prefs.getString("username");
String password = prefs.getInt("password");
于 2013-02-20T08:42:48.200 回答
0

你不能只使用 getter 和生产者的实例来获取价值吗?就像是

生产者.java

public String getName() {
    return username;
}

public String getPwd() {
    return password;
}

并在消费者类中使用它们,例如:

消费者.java

Producer producer = new Producer();
producer.getName();
producer.getPwd();

您还可以参考如何在不扩展 Activity 的类中使用 getIntent()?

于 2013-02-20T08:58:07.630 回答