0

我正在尝试使用 LayoutInflater 从数组列表中膨胀按钮。基本上我有三个数组列表:一个用于按钮文本,一个用于按钮图像,一个用于单击时将转到的类文件。我在为按钮充气时可以使用文本和图像,但是单击时我无法切换类文件。我已经尝试寻找解决方案,但我没有找到任何适合我需要的东西。非常感谢任何帮助。

这是我的代码:

ViewGroup parent;
LayoutInflater inflater;
TextView bText;
ImageView bImage;
        parent = (ViewGroup) findViewById(R.id.container);
        inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        String[] text = {"News","Chat"};
        String[] image = {"news","chat"};
        String[] link = {"Main","Chat"};
        int size = text.length;
        for(int i = 0; i < size; i++) {
            View view = inflater.inflate(R.drawable.button, null);
            int imageID = getResources().getIdentifier(image[i], "drawable",  getPackageName());
            bImage = (ImageView) view.findViewById(R.id.ihome);
            bImage.setImageResource(imageID);
            bText = (TextView) view.findViewById(R.id.thome);
            bText.setText(text[i]);
            parent.addView(view);

            final String theClass = link[i];
            bText.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent blink = new Intent();
                    blink.setClassName(getApplicationContext(), theClass);
                    startActivity(blink);
                }
            });
            }

编辑:为了澄清当我单击任何按钮时它崩溃说它找不到它并询问它是否已在 AndroidManifest.xml 中声明它是。

4

2 回答 2

0

Main您应该ChatAndroidManifest.xml. 然后你需要(PKG是你的活动包,即com.example.activity​​):

Intent blink = new Intent(YourActivity.this, Class.forName(PKG + '.' + theClass));
于 2013-02-07T07:08:05.030 回答
0

blink.setClassName() 的第一个参数是包上下文。所以试着像这样打电话。

 blink.setClassName(packagename, fullyqualifiedactivityname);
 getApplicationContext().startActivity(blink);
于 2013-02-07T06:11:31.303 回答