Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将EditText值从方法传递到同一活动中SQLiteOpenHelper类的Insert函数?_Java_Android Studio_Android Sqlite - Fatal编程技术网

Java 如何将EditText值从方法传递到同一活动中SQLiteOpenHelper类的Insert函数?

Java 如何将EditText值从方法传递到同一活动中SQLiteOpenHelper类的Insert函数?,java,android-studio,android-sqlite,Java,Android Studio,Android Sqlite,我有一个微调器,它选择分支值并存储在MSelected方法中的EditText中。但我需要在编辑文本(分支)中显示的值之前分配给同一活动中的SqliteDatabase插入操作方法。很抱歉,我无法恰当地提出问题 register.java public class register extends AppCompatActivity implements AdapterView.OnItemSelectedListener { SQLiteOpenHelper openHelper;

我有一个微调器,它选择分支值并存储在MSelected方法中的EditText中。但我需要在编辑文本(分支)中显示的值之前分配给同一活动中的SqliteDatabase插入操作方法。很抱歉,我无法恰当地提出问题

register.java

public class register extends AppCompatActivity implements AdapterView.OnItemSelectedListener {


    SQLiteOpenHelper openHelper;
    SQLiteDatabase db;
    Button _btnsignup;
    EditText _txtFname, _txtLname, _txtpass, _txtemail, _txtrollno;


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

        openHelper=new DatabaseHelper(this);

        _btnsignup= findViewById(R.id.btn_signup);
        _txtFname=findViewById(R.id.fname);
        _txtLname=findViewById(R.id.lname);
        _txtpass=findViewById(R.id.password);
        _txtemail=findViewById(R.id.email);
        _txtrollno=findViewById(R.id.rollno);
        _btnsignup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db=openHelper.getWritableDatabase();
                String fname=_txtFname.getText().toString();
                String Lname= _txtLname.getText().toString();
                String pwd= _txtpass.getText().toString();
                String email= _txtemail.getText().toString();
                String rollno= _txtrollno.getText().toString();

                insertdata(Fname, Lname, pwd,email,rollno);
                Toast.makeText(getApplicationContext(), "Registered Succesfully", Toast.LENGTH_LONG).show();
            }
        });

        Spinner spinner=findViewById(R.id.semester);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.semester,android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
    }

public void insertdata( String Fname, String Lname, String pwd, String email, String rollno){
    ContentValues contentValues=new ContentValues();
    contentValues.put(DatabaseHelper.COL_2, Fname);
    contentValues.put(DatabaseHelper.COL_3, Lname);
    contentValues.put(DatabaseHelper.COL_4, pwd);
    contentValues.put(DatabaseHelper.COL_5, email);
    contentValues.put(DatabaseHelper.COL_6, rollno);
    long id=db.insert(DatabaseHelper.TABLE_NAME,null,contentValues);

    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        String text=adapterView.getItemAtPosition(i).toString();
        EditText branch= (EditText)findViewById(R.id.branch);
        String text2=adapterView.getSelectedItem().toString();
        branch.setText(text2);
        Toast.makeText(adapterView.getContext(),text,Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }


    public void open_login(View view){
        startActivity(new Intent(getApplicationContext(),login.class));
    }
}
公共类寄存器扩展AppCompativeActivity实现AdapterView.OnItemSelectedListener{
SQLiteOpenHelper;
sqlitedb数据库;
按钮_btnsignup;
EditText\u txtFname、\u txtLname、\u txtpass、\u txtmail、\u txtrollno;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
openHelper=新的DatabaseHelper(此);
_btnsignup=findviewbyd(R.id.btn_注册);
_txtFname=findviewbyd(R.id.fname);
_txtLname=findviewbyd(R.id.lname);
_txtpass=findviewbyd(R.id.password);
_txtemail=findviewbyd(R.id.email);
_txtrollno=findviewbyd(R.id.rollno);
_btnsignup.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
db=openHelper.getWritableDatabase();
字符串fname=\u txtFname.getText().toString();
字符串Lname=\u txtLname.getText().toString();
字符串pwd=txtpass.getText().toString();
字符串email=\u txtemail.getText().toString();
字符串rollno=\u txtrollno.getText().toString();
插入数据(Fname、Lname、pwd、电子邮件、rollno);
Toast.makeText(getApplicationContext(),“已成功注册”,Toast.LENGTH_LONG.show();
}
});
微调器微调器=findViewById(R.id.Serment);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.Serm,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
}
public void insertdata(字符串Fname、字符串Lname、字符串pwd、字符串email、字符串rollno){
ContentValues ContentValues=新ContentValues();
contentValues.put(DatabaseHelper.COL_2,Fname);
contentValues.put(DatabaseHelper.COL_3,Lname);
contentValues.put(DatabaseHelper.COL_4,pwd);
contentValues.put(DatabaseHelper.COL_5,电子邮件);
contentValues.put(DatabaseHelper.COL_6,rollno);
long id=db.insert(DatabaseHelper.TABLE_NAME,null,contentValues);
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
String text=adapterView.getItemAtPosition(i).toString();
EditText分支=(EditText)findViewById(R.id.branch);
String text2=adapterView.getSelectedItem().toString();
branch.setText(text2);
Toast.makeText(adapterView.getContext(),text,Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
公共作废打开\u登录(查看){
startActivity(新意图(getApplicationContext(),login.class));
}
}
我需要将editText值从
branch.setText(text2);
传递到
String branch=\u txtbranch.getText().toString();
上面在
public void onclick
中定义,但它说不能

解析符号branch.getText().toString;,因为它在另一个函数中声明


如果全局声明,则
getItemsSelect
方法将显示错误和应用程序崩溃。请帮助。

我建议进行以下更改:-

  • 将微调器、适配器和xtBranch声明为类变量
  • 将视图(微调器和_txtbranch)与其他视图一起设置
  • (可选)不具有onItemSelected或onNothingSelected的覆盖,而是在按钮的onclick中检索选定项(因此不需要分支编辑文本)
以下代码包括上述内容,但请参见注释:-

public class register extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    SQLiteOpenHelper openHelper;
    SQLiteDatabase db;
    Button _btnsignup;
    Spinner spinner; //<<<<<<<<<< DECLARED HERE
    ArrayAdapter<CharSequence> adapter; //<<<<<<<<<< DECLARED HERE
    EditText _txtFname, _txtLname, _txtpass, _txtemail, _txtrollno, _txtbranch /* <<<<<<<<<< CHANGED  to add _txtbranch>>>>>>>> */;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        openHelper=new DatabaseHelper(this);

        _btnsignup= findViewById(R.id.btn_signup);
        _txtFname=findViewById(R.id.fname);
        _txtLname=findViewById(R.id.lname);
        _txtpass=findViewById(R.id.password);
        _txtemail=findViewById(R.id.email);
        _txtrollno=findViewById(R.id.rollno);
        _txtbranch=findViewById(R.id.branch); /* <<<<<<<<<< ADDED >>>>>>>>>> Alternately not needed if getting item directly from spinner*/
        spinner=findViewById(R.id.semester); /*<<<<<<<<<<< MOVED TO HERE spinner defined as a class variable */

        _btnsignup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db=openHelper.getWritableDatabase();
                String fname=_txtFname.getText().toString();
                String Lname= _txtLname.getText().toString();
                String pwd= _txtpass.getText().toString();
                String email= _txtemail.getText().toString();
                String rollno= _txtrollno.getText().toString();
                String branch = _txtbranch.getText().toString(); // code wanted BUT not needed if value obtained directly from the spinner
                //String branch = spinner.getSelectedItem().toString(); // ALTERNATIVE no need  _txtbranch duplicating selected value

                insertdata(Fname, Lname, pwd,email,rollno);
                Toast.makeText(getApplicationContext(), "Registered Succesfully", Toast.LENGTH_LONG).show();
                //Toast.makeText(view.getContext(),"Registered Succesfully", Toast.LENGTH_LONG).show(); // Alternative to previous line gets the context from the view
            }
        });

        adapter = ArrayAdapter.createFromResource(this, R.array.semester,android.R.layout.simple_spinner_item); //<<<<<<<<<< CHANGED
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this); //<<<<<<<<<< not really needed as selected item can be retrieved directly from spinner
    }

    public void insertdata( String Fname, String Lname, String pwd, String email, String rollno) {
        ContentValues contentValues = new ContentValues();
        contentValues.put(DatabaseHelper.COL_2, Fname);
        contentValues.put(DatabaseHelper.COL_3, Lname);
        contentValues.put(DatabaseHelper.COL_4, pwd);
        contentValues.put(DatabaseHelper.COL_5, email);
        contentValues.put(DatabaseHelper.COL_6, rollno);
        long id = db.insert(DatabaseHelper.TABLE_NAME, null, contentValues);
    }

    // Not needed if retrieving value directly from spinner
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        String text=adapterView.getItemAtPosition(i).toString();
        //branch= (EditText)findViewById(R.id.branch);
        String text2=adapterView.getSelectedItem().toString();
        _txtbranch.setText(text2);
        Toast.makeText(adapterView.getContext(),text,Toast.LENGTH_SHORT).show();

    }

    // Not needed if retrieving value directly from spinner
    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }

    public void open_login(View view){
        startActivity(new Intent(getApplicationContext(),login.class));
    }
}
公共类寄存器扩展AppCompativeActivity实现AdapterView.OnItemSelectedListener{
SQLiteOpenHelper;
sqlitedb数据库;
按钮_btnsignup;

旋转器旋转器;//谢谢,我来试试。