2012-04-04 27 views
0

MainMenulist.java在此類中的字符串數組存儲所有值public String [] itemcodes;我想訪問itemcodes向Main.java如何將字符串數組的一個類發送到android中的另一個類

Main.java

JSONArray json = jArray.getJSONArray("mainmenu"); 
     list=(ListView)findViewById(R.id.mainmenulist); 
     adapter=new MainMenulist(this, json); 
     list.setAdapter(adapter); 
      MainMenulist.java 
     public class MainMenulist extends BaseAdapter { 
protected static Context Context = null; 
int i; 
public String editnewmainmenu,menuname; 
String qrimage; 
Bitmap bmp, resizedbitmap; 
Bitmap[] bmps; 
Activity activity = null; 
private LayoutInflater inflater; 

private ImageView[] mImages; 
String[] itemimage; 
TextView[] tv; 
String itemname,itemcode; 
public String[] itemnames,itemcodes; 
HashMap<String, String> map = new HashMap<String, String>(); 

public MainMenulist(Context context, JSONArray imageArrayJson) { 
    Context = context; 
    // inflater = 
    // (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    // imageLoader=new ImageLoader(activity); 
    inflater = LayoutInflater.from(context); 
    this.mImages = new ImageView[imageArrayJson.length()]; 
    this.bmps = new Bitmap[imageArrayJson.length()]; 
    this.itemnames = new String[imageArrayJson.length()]; 
    this.itemcodes=new String[imageArrayJson.length()]; 

    try { 

     for (i = 0; i < imageArrayJson.length(); i++) { 
      JSONObject image = imageArrayJson.getJSONObject(i); 
      qrimage = image.getString("menuimage"); 
      itemname = image.getString("menuname"); 
      itemcode=image.getString("menucode"); 
      itemnames[i] = itemname; 
      itemcodes[i]=itemcode; 

      byte[] qrimageBytes = Base64.decode(qrimage.getBytes()); 

      bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0, 
        qrimageBytes.length); 
      int width = 100; 
      int height = 100; 
      resizedbitmap = Bitmap.createScaledBitmap(bmp, width, height, 
        true); 
      bmps[i] = bmp; 

      mImages[i] = new ImageView(context); 
      mImages[i].setImageBitmap(resizedbitmap); 

      mImages[i].setScaleType(ImageView.ScaleType.FIT_START); 

      // tv[i].setText(itemname); 
     } 
     System.out.println(itemnames[i]); 
     System.out.println(map); 

    } catch (Exception e) { 
     // TODO: handle exception 
    } 
} 

public int getCount() { 
    return mImages.length; 
} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public View getView(final int position, View convertView, ViewGroup parent) { 

    View vi = convertView; 

    vi = inflater.inflate(R.layout.mainmenulistview, null); 

final TextView text = (TextView) vi.findViewById(R.id.menutext); 
    ImageView image = (ImageView) vi.findViewById(R.id.menuimage); 

    System.out.println(itemcodes[position]); 
    image.setImageBitmap(bmps[position]); 

    text.setText(itemnames[position]); 
    text.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(itemcodes[position].equals("1")) 
      { 
       Intent intent = new Intent(Context, FoodMenu.class); 
       System.out.println("prakash"); 

       Context.startActivity(intent); 
      } 
      else { 
       Toast.makeText(Context, "This Feauture is not yet Implemented",4000).show(); 
      } 

     } 
    });  

    return vi; 

} 

    } 

MainMenulist.java的System.out.println(itemcodes [位置]);在這裏,我打印所有代碼。沒有無線網絡要在Main.java

+0

請在發佈代碼之前運行您的ide的代碼格式化程序 – Renard 2012-04-04 09:57:32

+0

System.out.println(itemcodes [position]);使用這一行我可以打印MainMenulist.java中的所有項目代碼我想要在Main.java中打印相同的值 – Vinoth 2012-04-04 10:10:36

+0

請參閱此[舊帖子](http://stackoverflow.com/a/5217240/1250370)。 – Deepak 2012-04-04 17:55:15

回答

0
There are two ways to do this: 

In your code: 

    public String[] itemnames,itemcodes; make that arrays as static like below 

    public static String[] itemnames,itemcodes; 

And then use `Main.java` file by calling: 

    System.out.println(MainMenulist.itemcodes[position]); 
    System.out.println(MainMenulist.itemnames[position]); 

2) Parse JSON in Main.java which you have pass to MainMenulist.java 

    public MainMenulist(Context context, JSONArray imageArrayJson) 
+0

[position]在main.java中未啓用 – Vinoth 2012-04-04 10:07:24

0

寫它實現serlizable豆打印相同的結果,寫setter和getter方法爲您的陣列(itemNames中)如下

class Bean implements Serializable{ 
    String itemnames[]; 

    public Hashtable getItemnames() { 
     return itemnames; 
    } 

    public void setItemnames(String itemnames[]) { 
     this.itemnames= itemnames; 
    } 

} 

譜寫調用活動

Bean b = new Bean(); 
    b.setItemnames(itemnames); 

    Intent i=new Intent(); 
    i.setClass(A.this,B.class); 
    i.putExtra("itemnames", b); 
    startActivity(i); 

foollowing代碼和所謂的活動取得如下

Bean obj = (Bean) getIntent().getSerializableExtra("itemnames");// TypeCasting 
String itemname[] = (Hashtable) obj.getItemnames(); 
相關問題