2017-10-24 2 views
-5

Ich möchte meine Position innerhalb einer Java-Klasse auswerten und daraus Code mit einer if-Anweisung ausführen.Wie kann ich die Position in einer Klasse innerhalb einer if-Anweisung angeben?

Dieser Teil meines Codes in Android Studio ist

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

    } 

`

Wie man sehen kann ich vergeben, wenn (PizzaActivity. Klasse! = Null) {}, aber ich weiß, dass es falsch ist.

Es ist für ein Android-Projekt.

Ich hoffe, Sie können mir helfen, danke im Voraus.

Grüße.

+1

Was genau willst du? –

+0

Wenn ich nicht falsch liege, brauchst du eine Position außerhalb deines Adapters? Recht?? oder Sie wollen tu Verwenden Sie Ihre Listener Outside Adapter Class? –

+0

Wenn PizzaActivity.class Ihre Aktivität ist, können Sie die Methode getActivity() verwenden –

Antwort

0

Ihre onBindViewHolder Methode wie folgt ändern:

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

Hoffe, dass es Ihr Problem lösen werde.

-1

Klasse nicht Null überprüfen. Wenn Sie möchten, Check-Klasse vorhanden ist, können Sie sich beziehen:

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

und

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

Ich hoffe, dass es Ihr Problem helfen können!

0

Try Einstellposition als Tag in holder.itemView
und in onClick() Methode verwenden view.getTag() gleiche Position abrufen und entsprechend handeln.

Verwandte Themen