Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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 组合字符串未附加到值_Java_Android_Database_String_Null - Fatal编程技术网

Java 组合字符串未附加到值

Java 组合字符串未附加到值,java,android,database,string,null,Java,Android,Database,String,Null,有人知道为什么我的字符串没有附加到值上吗 public void setNames() { //*******************// //***DATABASE INFO***// //*******************// DBAdapter db = new DBAdapter(this); if (totalPlayerCount >= 1){ //**********************// //**

有人知道为什么我的字符串没有附加到值上吗

public void setNames() {

    //*******************//
    //***DATABASE INFO***//
    //*******************//
    DBAdapter db = new DBAdapter(this);

    if (totalPlayerCount >= 1){  


    //**********************//
    //***SET PLAYER NAMES***//
    //**********************//
    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Player " + nameLoop);
    alert.setMessage("Name:");

    // Set an EditText view to get user input 
    final EditText input = new EditText(this);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      String newName = "name"+nameLoop;
      // If i put "name1" here like so, the value "wow" stays with "name1" all the way to the database and does not end up null
      name1 = "wow";
      newName = input.getText().toString(); <-- newName should be name1, name2, name3, name4 each time around.  If i do a simple Toast, it displays name1, name2, etc.  But when i insert those values into the database, they are all null.
      setNames();
      }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
      }
    });

    alert.show();

    nameLoop++;

    }
    if (totalPlayerCount == 0){
        db.open();
        db.insertPlayers(String.valueOf(name1), String.valueOf(name2), String.valueOf(name3),
                String.valueOf(name4));
        db.close();

        AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(this);
        //myAlertDialog.setTitle("Saved");
        myAlertDialog.setMessage("Names saved");
        myAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int which) {
                return;
            } }); 
        myAlertDialog.show();
    }   
    totalPlayerCount--;
    return;
}
public void setNames(){
//*******************//
//***数据库信息***//
//*******************//
DBAdapter db=新的DBAdapter(此);
如果(totalPlayerCount>=1){
//**********************//
//***设置玩家名称***//
//**********************//
AlertDialog.Builder alert=新建AlertDialog.Builder(此);
alert.setTitle(“玩家”+nameLoop);
alert.setMessage(“名称:”);
//设置EditText视图以获取用户输入
最终编辑文本输入=新编辑文本(本);
alert.setView(输入);
alert.setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
public void onClick(对话框接口对话框,int whichButton){
字符串newName=“name”+nameLoop;
//如果我像这样将“name1”放在这里,那么值“wow”将与“name1”一起一直保留到数据库,并且不会以null结束
name1=“哇”;

newName=input.getText().toString();短版本alert.show()不会阻塞,因此在通过onClick返回name1值赋值之前,您正在执行数据库插入


在长版本中,请后退几步,学习一些Java语法以及基于事件的编程是如何工作的。今天就是这样。您渴望工作是件好事,但我建议您在开始全速运行之前,先关注一些基础知识。有了良好的理解,您将能够更快地编写代码压力更小,弯路更少。
一盎司的预防抵得上一磅的治疗

你不能动态地创建一个变量然后给它赋值。Java不像javascript那样工作

你必须换新衣服

  String newName = "name"+nameLoop;
  // If i put "name1" here like so, the value "wow" stays with "name1" all the way to the database and does not end up null
  name1 = "wow";
  newName = input.getText().toString(); <-- newName should be name1, name2, name3, name4 each time around.  If i do a simple Toast, it displays name1, name2, etc.  But when i insert those values into the database, they are all null.

调用insertPlayers(…)调用String时,valueOf(String)只会产生开销,没有完成任何有用的工作。name1声明在哪里?name1-4在类的最开始都声明为公共字符串。我想我可能看到了什么问题,但不确定如何解决。我设置了newName=“name”+nameLoop;成为name1,但紧接着,newName=input.getText().toString();这意味着newName不再是name1。我想我需要创建一个数组或其他东西??name[]或者类似的东西??不确定,但我需要每次都从name1更改为name2。我不知道你在哪里设置name2 name3等的值。如果你想将用户输入的每个名称插入数据库…只需声明一个字符串列表,将名称添加到列表中,然后迭代并插入数据库。。。
  String newName = "name"+nameLoop;
  // If i put "name1" here like so, the value "wow" stays with "name1" all the way to the database and does not end up null
  name1 = "wow";
  newName = input.getText().toString(); <-- newName should be name1, name2, name3, name4 each time around.  If i do a simple Toast, it displays name1, name2, etc.  But when i insert those values into the database, they are all null.
String newName = input.getText().toString();
switch(nameLoop){
case 1: name1=newName;break;
case 2: name2=newName;break;
....