-1

主要活动

     public void onClick(View v) {
            String[] arraynomb = arreglonombreprod.toArray(new String[0]);
            String[] arrayprecios = precioproductoarreglo.toArray(new String[0]);
            String[] arraycant = arreglocantidadprod.toArray(new String[0]);
            Bundle extras = new Bundle();
            Intent intent = new Intent(getApplicationContext(),claseinventario.class);
            extras.putStringArray("productosx", arraynomb);
            extras.putStringArray("preciosx", arrayprecios);
            extras.putStringArray("cantidadesx", arraycant);
            intent.putExtras(extras);
            startActivity(intent);
        }
    });

另一个班级

公共类 claseinventario 扩展 Activity {

ListViewAdapter adapter;


Bundle extras = getIntent().getExtras();
String[] prod = extras.getStringArray("productosx");
String[] cant = extras.getStringArray("preciosx");
String[] pre = extras.getStringArray("cantidadesx");



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lista);
    final ListView lista = (ListView) findViewById(R.id.viewlista);
    adapter = new ListViewAdapter(this, prod, pre, cant);
    lista.setAdapter(adapter);


}

日志猫:

02-22 14:52:58.975: E/AndroidRuntime(6623): FATAL EXCEPTION: main

02-22 14:52:58.975: E/AndroidRuntime(6623): java.lang.RuntimeException: 无法实例化活动 ComponentInfo{com.example.manuel.supercontrol/com.example.manuel.supercontrol.claseinventario}: java.lang .NullPointerException 02-22 14:52:58.975:E/AndroidRuntime(6623):引起:java.lang.NullPointerException

02-22 14:52:58.975: E/AndroidRuntime(6623): at com.example.manuel.supercontrol.claseinventario.(claseinventario.java:15)

第 15 行是 - 捆绑额外内容 = getIntent().getExtras();

4

2 回答 2

0

试试这个:

@Override
public void onClick(View v) {
    String[] arraynomb = arreglonombreprod.toArray(new String[0]);
    String[] arrayprecios = precioproductoarreglo.toArray(new String[0]);
    String[] arraycant = arreglocantidadprod.toArray(new String[0]);
    Intent intent = new Intent(getApplicationContext(),claseinventario.class);
    intent.putExtra("productosx", arraynomb);
    intent.putExtra("preciosx", arrayprecios);
    intent.putExtra("cantidadesx", arraycant);
    startActivity(intent);
}

并检索它们:

Intent intent = getIntent();
String[] prod = intent.getExtra("productosx");
String[] cant = intent.getExtra("preciosx");
String[] pre = intent.getExtra("cantidadesx");

为了使代码更简洁,您应该考虑使用标准的 Java 类命名约定(例如大写的类名)和Extra名称的常量值,但上面的代码应该可以正常工作。

于 2016-02-22T15:01:36.400 回答
0

不要getApplicationContext()在 Intent 中使用,使用Activity.this

如果您传递的额外内容是arraylist,您可以直接将arraylist传递为

intent.putStringArrayListExtra("key",arraylist here);

在其他活动中,您必须检查额外内容或特定键上的空指针

Bundle bundle = getIntent().getExtras();
if(bundle != null){
  if(bundle.containsKey("key)){
    //....extract extra here
  }
}
于 2016-02-22T15:04:32.920 回答