2017-06-16 14 views
0

配列リストからimageViewにデータを表示しようとしています。しかし、私は取得していますアレイリストからImageViewにデータを取得するにはどうすればよいですか?

java.lang.RuntimeException:java.lang.NullPointerExceptionが

:活動ComponentInfo {com.example.gorila.sqlite_grid_view/com.example.gorila.AvatarShop.imageView}をインスタンス化できません

ユーザーがカスタマイズしたリストからイメージを購入したときに、イメージが格納されているインデックスが配列リストに追加され、イメージビューアクティビティに渡されるという簡単な機能を作ろうとしています。クラスを選択すると、ユーザーは新しい購入イメージに切り替えることができるボタンを押すことができます。

したがって、MainActivity - > DetailActivity - > imageViewになります。

主な活動:

int[] avatarImage = {R.mipmap.blademaster,R.mipmap.gunslinger,R.mipmap.pyro,R.mipmap.darthvader}; 
listView = (ListView) findViewById(R.id.avatarlv); 

MyAdapter myAdapter = new MyAdapter(MainActivity.this,titles,harga,avatarImage); 
listView.setAdapter(myAdapter); 

listView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, 
          int position, long id) { 
     Intent mIntent = new Intent(MainActivity.this,DetailActivity.class); 
     mIntent.putExtra("title",titles[position]); 
     mIntent.putExtra("avatarImages",avatarImage[position]); 
     mIntent.putExtra("harga",harga[position]); 
     startActivity(mIntent); 
    } 
}); 

マイアクティビティ(詳細):

final ArrayList<Integer> list = new ArrayList<Integer>(); 

btnYes.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     if (mymoney > harga) { // when my money is > price of the item 
      list.add(mBundle.getInt("avatarImages")); 
      Toast.makeText(DetailActivity.this, "Successfully Bought the avatar", Toast.LENGTH_LONG).show(); 
      Intent intent = new Intent(DetailActivity.this, imageView.class); 
      intent.putExtra("list1", list); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     } 
     else { 
      Toast.makeText(DetailActivity.this, "Your money is not enough", Toast.LENGTH_LONG).show(); 
      Intent intent = new Intent(DetailActivity.this, MainActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     } 
    } 
}); 

マイImageViewの:

private int current_image_index; 

ArrayList<Integer> imageBought = (ArrayList<Integer>)getIntent().getSerializableExtra("list1"); 

    private void buttonClick() 
    { 
     imgView = (ImageView) findViewById(R.id.imageView); 
     buttonSw = (Button) findViewById(R.id.buttonSw); 
     buttonSw.setOnClickListener(
      new View.OnClickListener(){ 
       @Override 
       public void onClick(View v) { 
        current_image_index++; 
        current_image_index = current_image_index % imageBought.size(); 
        imgView.setImageResource(imageBought.get(current_image_index)); 
       } 
      } 
     ); 
    } 

助けてください。

答えて

0

ImageView.classはアクティビティではありませんので、MainActivity.classDetailActivity.classのような意図で呼び出すことはできません。また、将来的に完全なエラーログを投稿して、エラーが何であるかについて誰もがより多くのコンテキストを取得できるようにしてください。

+0

申し訳ありませんが、どのように活動ではありませんか?私は意図を持ってそれを呼び出し、それが働いた、私が持っている唯一の問題は、格納された配列を呼び出して、それをイメージビューに表示することができないということです。 @MacLean Sochor –

関連する問題