2017-10-24 6 views
-5

私はJavaクラス内で自分の位置を評価し、そこからifステートメントを使っていくつかのコードを実行したいと思います。ifステートメント内のクラス内の位置を指定する方法は?

あなたは(PizzaActivity。クラス!= null)の場合、私は置いています見ることができるようにこれは、Android Studioで私のコード

@Override 
    public void onBindViewHolder(PictureViewHolder holder, final int position) { 
     PictureListPizza pictureListPizza = pictureListPizzas.get(position); 
     holder.product_name.setText(pictureListPizza.getProduct_name()); 
     holder.product_ingredients.setText(pictureListPizza.getProduct_ingredients()); 
     holder.product_price.setText(pictureListPizza.getProduct_price()); 
     Picasso.with(activity).load(pictureListPizza.getPicture()).into(holder.product_photo); 

     holder.itemView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (PizzaActivity.class != null){ 
        if(position == 0){ 
         Intent intent = new Intent(activity, Pizza1Activity.class); 
         activity.startActivity(intent); 
        } 
        if(position == 1){ 
         Intent intent = new Intent(activity, Pizza2Activity.class); 
         activity.startActivity(intent); 
        } 
        if(position == 2){ 
         Intent intent = new Intent(activity, Pizza3Activity.class); 
         activity.startActivity(intent); 
        } 
       } 
      } 
     }); 

    } 

`

の一部であり、{}が、私はそれが間違っている知っています。

これはアンドロイドプロジェクトのためのものです。

お手数ですが、よろしくお願いいたします。

ご挨拶。

+1

正確に何をしたいですか? –

+0

私は間違っていない場合は、あなたのアダプタの外に位置が必要ですか?右??またはあなたはあなたのリスナーを外部アダプタークラスに使用しますか? –

+0

PizzaActivity.classがあなたのアクティビティであれば、getActivity()メソッドを使用できます –

答えて

0
このようなあなたの onBindViewHolder方法に変更

..... 
holder.itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        // no neeed this condition 
        //if (PizzaActivity.class != null){ 
        if(position == 0){ 
         Intent intent = new Intent(activity, Pizza1Activity.class); 
         activity.startActivity(intent); 
        } 
        if(position == 1){ 
         Intent intent = new Intent(activity, Pizza2Activity.class); 
         activity.startActivity(intent); 
        } 
        if(position == 2){ 
         Intent intent = new Intent(activity, Pizza3Activity.class); 
         activity.startActivity(intent); 
        } 
       } 
     }); 

を、それはあなたの問題を解決していただければ幸いです。

-1

クラスはnullをチェックしません。チェックは、クラスが存在するあなたがしたい場合は、参照することができます。

public boolean isClass(String className) { 
    try { 
     Class.forName(className); 
     return true; 
    } catch (ClassNotFoundException e) { 
     return false; 
    } 
} 

if (isClass("android.app.ActionBar")) { 
    Toast.makeText(getApplicationContext(), "YES",  Toast.LENGTH_SHORT).show(); 
} 

を、私はそれはあなたの問題を助けることができると思います!

0

は同じ位置を取得し、それに応じて行動するview.getTag()を使用し、holder.itemView
にし、onClick()方法でタグとしての位置を設定してみてください。

関連する問題