将窗口小部件输入传递给DatabaseHelperSource文件

时间:2017-10-26 20:24:28

标签: java android

免责声明:我是Android开发的新手:)

如何将从第一个类收集的字符串值传递给下面的类?我尝试了这个,但只获得了空值。

这是我的主要活动。

public class SnapToSellDataSource {

    private SQLiteDatabase mDatabase;
    private  SnapToSellHelper mHelper;
    private Context mContext;

    public SnapToSellDataSource(Context context){
        mContext = context;
        mHelper = new SnapToSellHelper(mContext);
    }

    public void insertUser(Register register){
        ContentValues values = new ContentValues();
        values.put(SnapToSellHelper.COL_NAME, register.sFullname);
        values.put(SnapToSellHelper.COL_EMAIL, register.sEmail);
        values.put(SnapToSellHelper.COL_NUMBER, register.sMobileNumber);
        values.put(SnapToSellHelper.COL_PASSWORD, register.sPassword);

        mDatabase.insert(SnapToSellHelper.TBL_USERS, null, values);
    }
}

这是应该接收字符串值的类:

void func()
{
    ...
    char    str[3] = "nvm";
    char    str2[3] = "nbd";
    my_strcat(str, str2);
    ...
}

我试图从第二个类获取getText,getString,但我的应用程序崩溃了,因为小部件尚未在类级别分配id。传递包含在quoation标记中的实际字符串值(""),这意味着正确设置了DatabaseHelper。

我也试过声明类变量并为它们分配小部件值但是仍然得到了#34;无法解析符号"错误。

如何读取局部变量并将它们传递给类变量,然后可以将其设置为public并由另一个类读取;在这种情况下,第二类?

1 个答案:

答案 0 :(得分:1)

无法在Android中简单地创建活动的实例。活动不是您只需要执行“ new ”并调用其构造函数的类。应用程序启动时或Intent启动活动时会创建一个Activity实例。

这样做: 注册寄存器=新注册(); 不好!你可以找到好的论据here

相反,您可以将这些值作为参数传递给 insertUser(params ...)方法,或者创建一个新的User类并使用这些字符串值对其进行实例化并将其传递给 insertUser(用户) 方法。

方法调用:

mDataSource.insertUser(sFullname, sEmail, sMobileNumber, sPassword);

方法定义:

public void insertUser(String sFullname, String sEmail, String sMobileNumber, String sPassword) {

    ContentValues values = new ContentValues();
    values.put(SnapToSellHelper.COL_NAME, sFullname);
    values.put(SnapToSellHelper.COL_EMAIL, sEmail);
    values.put(SnapToSellHelper.COL_NUMBER, sMobileNumber);
    values.put(SnapToSellHelper.COL_PASSWORD, sPassword);

    mDatabase.insert(SnapToSellHelper.TBL_USERS, null, values);
}