Android 自定义的listview来自我想要的数据库单击listview表示它打印特定的itemname

Android 自定义的listview来自我想要的数据库单击listview表示它打印特定的itemname,android,android-layout,Android,Android Layout,我已经从数据库中以listview的形式获取了图像和文本。现在单击特定的文本或图像,我应该打印相同的文本。 如果我点击食物菜单列表视图,它应该打印食物菜单。如果我点击目录列表视图,它应该打印目录 enter code here JSONArray json = jArray.getJSONArray("mainmenu"); list=(ListView)findViewById(R.id.mainmenulist); adapter=new MainMenul

我已经从数据库中以listview的形式获取了图像和文本。现在单击特定的文本或图像,我应该打印相同的文本。 如果我点击食物菜单列表视图,它应该打印食物菜单。如果我点击目录列表视图,它应该打印目录

enter code here
JSONArray json = jArray.getJSONArray("mainmenu");
        list=(ListView)findViewById(R.id.mainmenulist);
         adapter=new MainMenulist(this, json);
         list.setAdapter(adapter);

Main menu listview
  public class MainMenulist extends BaseAdapter {
protected static Context Context = null;
int i;
String qrimage;
Bitmap bmp, resizedbitmap;
Bitmap[] bmps;
Activity activity = null;
private LayoutInflater inflater;

private ImageView[] mImages;
String[] itemimage;
TextView[] tv;
String itemname;
public String[] itemnames;
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()];

    try {

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

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

    TextView text = (TextView) vi.findViewById(R.id.menutext);
    ImageView image = (ImageView) vi.findViewById(R.id.menuimage);
    image.setImageBitmap(bmps[position]);

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

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

    return vi;

}

  }
在此处输入代码
JSONArray json=jArray.getJSONArray(“主菜单”);
列表=(ListView)findViewById(R.id.mainmenulist);
adapter=new MainMenulist(这是json);
list.setAdapter(适配器);
主菜单列表视图
公共类MainMenulist扩展了BaseAdapter{
受保护的静态上下文=null;
int i;
字符串图像;
位图bmp,调整大小的位图;
位图[]bmps;
活动=空;
私人充气机;
私有图像视图[]模拟图像;
字符串[]项图像;
TextView[]电视;
字符串itemname;
公共字符串[]项名称;
HashMap=newHashMap();
公共主菜单列表(上下文上下文,JSONArray imageArrayJson){
上下文=上下文;
//充气机=
//(LayoutInflater)activity.getSystemService(Context.LAYOUT\u充气机\u服务);
//imageLoader=新的imageLoader(活动);
充气器=充气器。从(上下文);
this.mImages=newImageView[imageArrayJson.length()];
this.bmps=新位图[imageArrayJson.length()];
this.itemnames=新字符串[imageArrayJson.length()];
试一试{
对于(i=0;i
我可以在menulistview.java中获取所有项目请告诉我如何获取特定列表视图单击表示特定项目打印检查下面的代码

text.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (itemnames[position].equals("Food Menu")) {
            Intent intent = new Intent(Context, FoodMenu.class);
            System.out.println("prakash");
            System.out.println(v.getText().toString());
            Context.startActivity(intent);
        }
    }
});
你想按你建议的那样在办公地点打印姓名吗
System.out.println
语句

检查下面的代码

text.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (itemnames[position].equals("Food Menu")) {
            Intent intent = new Intent(Context, FoodMenu.class);
            System.out.println("prakash");
            System.out.println(v.getText().toString());
            Context.startActivity(intent);
        }
    }
});
你想按你建议的那样在办公地点打印姓名吗
System.out.println
statement

使用下面的链接,该链接显示了一个示例应用程序以及如何使用自定义适配器。包括单击事件

请尝试以下内容:

text.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(Context, FoodMenu.class);
            System.out.println(itemnames[position]);
            System.out.println(text.getText().toString());
            Context.startActivity(intent);
            }
        }
    });

使用下面的链接,该链接显示示例应用以及如何使用自定义适配器。包括单击事件

请尝试以下内容:

text.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(Context, FoodMenu.class);
            System.out.println(itemnames[position]);
            System.out.println(text.getText().toString());
            Context.startActivity(intent);
            }
        }
    });

记录您的getView方法。它叫什么名字?位置值是多少?此外,如果已经创建了转换视图,应该考虑重新转换(即:如果它不是NULL,那么重用组件,不要创建新的组件)。我怎么才能投票给谁,因为My不能理解你告诉SNOCLAS的内容。你能用我的codetext.setText(itemnames[position])解释一下吗;此行所有项目名称都附加到文本中。如果我单击“特定文本”,则表示它将打印我想要的特定文本,避免下面的代码public void onClick(视图v){//TODO自动生成的方法存根if(项目名称[position].equals(“食物菜单”){Intent Intent=new Intent(上下文,FoeNoop.class);St.Out.Prtln(“Praskase'”);上下文.StistActudio(意图);}记录GETVIEW方法。它被调用吗?具有位置值吗?此外,如果已经创建了,则应该考虑重新转换转换视图。(即:如果不为空,则重用该组件,不要创建新组件)。我如何投票给谁是mei的答案?我不明白你在告诉snicolas什么。你是否可以用我的codetext.setText(itemnames[位置])解释;此行所有项目名称都附加到文本中。如果我单击“特定文本”,则表示它将打印我想要的特定文本,避免下面的代码public void onClick(视图v){//TODO自动生成的方法存根if(项目名称[position].equals(“食物菜单”){Intent Intent=new Intent(Context,FoodMenu.class);System.out.println(“prakash”);Context.startActivity(intent);}}我正在手动提供ItemName[position].equals(“食物菜单”)。现在我需要动态。单击哪个项目名称意味着它将打印该项目名称我正在手动提供ItemName[position].equals(“食物菜单”)1.现在我要dynami