2017-09-06 1 views
0

Je veux faire comme laisser l'utilisateur ajouter un nouvel article dont l'utilisateur peut entrer le nom de l'article, la description de l'article, le prix de l'article et ainsi de suite. disons le nom variable stocké bonbons et j'ai une image de bonbons dans mon drawable puis-je faire comme R.drawable.name pour se référer à R.drawable.candy ?? Tout le monde aide plsUtilisation de la variable String pour créer une image-image Android

public class item { 
    String name; 
    String desc; 
    double price; 
    int itemimage; 

    public item(String name, String desc, double price) { 
     this.name = name; 
     this.desc = desc; 
     this.price = price; 

     itemimage = R.drawable.name;//my question is here 
     //i want to have auto define the image of the item for later use 
     // so i can do like set imageview of this item 
     //i will have the image have same name with item name 
     // for example my item name is candy 
     //then i will have a image at the android drawable named candy 
     //so in android to define this image is R.drawable.candy 
     // can i do like R.drawable.name <-- variable store with value candy 
     // is it same with R.drawable.candy 
    } 
}//end class item 

//another class 
public class main { 
    Arraylist<item> itemdatabase = new Arraylist<item>(); 

    Scanner input = new Scanner(System.in); 

    System.out.print("Enter item name:"); 
    String itemname = input.nextLine(); 

    System.out.print("Enter item desc:"); 
    String itemdesc = input.nextLine(); 

    System.out.print("Enter item price:"); 
    double itemprice = input.nextDouble(); 

    itemdatabase.add(new 

    item(itemname, itemdesc, itemprice); 
} 
+0

Mais vous avez beaucoup de déclarations en dehors des méthodes. Le compilateur ne s'est-il pas plaint? –

Répondre

1

Vous pouvez utiliser le Resources.getIdentifier() method. Pour R.drawable.candy, vous voulez l'utiliser comme ceci:

int id = getResources().getIdentifier("candy", "drawable", getPackageName()); 
// now `id` == R.drawable.candy 

Ce code suppose que vous exécutez l'intérieur d'un Activity. Si ce n'est pas le cas, vous devez accéder à une instance Context afin de pouvoir appeler le Context.getResources() et le Context.getPackageName(). Cela pourrait ressembler à ceci:

int id = mContext.getResources().getIdentifier("candy", "drawable", mContext.getPackageName()); 
0

réponse est non, vous ne pouvez pas faire comme R.drawable.name