-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);
        }
    });

他のクラス

public class claseinventario extends 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): com.example.manuel.supercontrol.claseinventario で。(claseinventario.java:15)

行 15# は - Bundle extras = 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()インテントで使用しないでください、使用しますActivity.this

渡すエクストラがarraylistの場合、arraylistを次のように直接渡すことができます

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

他のアクティビティでは、エクストラまたは特定のキーのnullpointerをチェックする必要があります

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