Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 在onCreate方法中初始化字符串[]_Java_Android - Fatal编程技术网

Java 在onCreate方法中初始化字符串[]

Java 在onCreate方法中初始化字符串[],java,android,Java,Android,我正试图根据来自上一个活动的值初始化字符串[]的数组。编译器说下面的代码中有一个错误,它说“数组常量只能在初始值设定项中使用”。除了我想做的事,没有别的选择吗 public class ZeroParameter extends Activity{ int option, model; String[] models; protected void onCreate(Bundle savedInstanceState) { Bundle b = getIntent().getExtr

我正试图根据来自上一个活动的值初始化字符串[]的数组。编译器说下面的代码中有一个错误,它说“数组常量只能在初始值设定项中使用”。除了我想做的事,没有别的选择吗

public class ZeroParameter extends Activity{
int option, model;
String[] models;

protected void onCreate(Bundle savedInstanceState) 
{
    Bundle b = getIntent().getExtras();
    option = b.getInt("option");


    switch(option)
    {
        case 1:
        models={ "Mike" , "Charls" , "Jhon"}
        case 2:
        models={"Paul" , "Louis" };
    }

    super.onCreate(savedInstanceState);
    setContentView(R.layout.zero_parameter);

    final Spinner spinModel=(Spinner)findViewById(R.id.spinnerModel0);
    spinModel.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
            public void onItemSelected(AdapterView<?> arg0, View v, int position,long id) 
            {
                    model = spinModel.getSelectedItemPosition();
            }
            public void onNothingSelected(AdapterView<?> arg0) 
        { 
        }
    });

    ArrayAdapter<String> aa= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,models);
    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinModel.setAdapter(aa);
}
公共类ZeroParameter扩展活动{
int选项,模型;
字符串[]模型;
创建时受保护的void(Bundle savedInstanceState)
{
Bundle b=getIntent().getExtras();
期权=b.getInt(“期权”);
开关(选件)
{
案例1:
模型={“Mike”、“Charls”、“Jhon”}
案例2:
模型={“保罗”,“路易斯”};
}
super.onCreate(savedInstanceState);
setContentView(R.layout.zero_参数);
最终Spinner spinModel=(Spinner)findViewById(R.id.spinnerModel0);
spinModel.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{
已选择公共位置(AdapterView arg0,视图v,内部位置,长id)
{
model=spinModel.getSelectedItemPosition();
}
未选择公共无效(AdapterView arg0)
{ 
}
});
ArrayAdapter aa=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u项,型号);
aa.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
spinModel.setAdapter(aa);
}
}

非常感谢你!!!我希望我们能找到解决办法

变化

switch(option)
{
    case 1:
    models={ "Mike" , "Charls" , "Jhon"};
    case 2:
    models={"Paul" , "Louis" };
}

改变

使用

原因

错误日志说明了一切。声明数组时,只能使用常量值初始化该数组

models={"Paul" , "Louis" } 
不是初始值设定项

朱纳德注意到了另一件事。如果您不使用break语句,那么对于案例1,两个语句都将完成。

使用

原因

错误日志说明了一切。声明数组时,只能使用常量值初始化该数组

models={"Paul" , "Louis" } 
不是初始值设定项

朱纳德注意到了另一件事。如果您不使用break语句,那么对于案例1,两个语句都将完成。

使用以下语句:

case 1:
  models= new String[] { "Mike" , "Charls" , "Jhon"}
case 2:
  models= new String[]{"Paul" , "Louis" };
Java希望您告诉它数组将包含什么类型。这只是一种安全措施,因此您无法执行类似于
{“字符串”,true}

的操作,请改用以下方法:

case 1:
  models= new String[] { "Mike" , "Charls" , "Jhon"}
case 2:
  models= new String[]{"Paul" , "Louis" };

Java希望您告诉它数组将包含什么类型。这只是一种安全措施,所以你不能做类似于
{“一个字符串”,true}

你可能需要一个接一个的休息你可能需要一个接一个的休息