Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在按下按钮时创建按钮?_Java_Android - Fatal编程技术网

Java 如何在按下按钮时创建按钮?

Java 如何在按下按钮时创建按钮?,java,android,Java,Android,我使用以下代码使用按钮名称数组在水平布局中创建按钮: LinearLayout tabView = (LinearLayout) findViewById(R.id.tabView); tabView.setOrientation(LinearLayout.HORIZONTAL); //Can also be done in xml by android:orientation="vertical" for (int i = 0; i < tab

我使用以下代码使用按钮名称数组在水平布局中创建按钮:

 LinearLayout tabView = (LinearLayout) findViewById(R.id.tabView);
        tabView.setOrientation(LinearLayout.HORIZONTAL);  //Can also be done in xml by android:orientation="vertical"
            for (int i = 0; i < tabButtonNames.length; i++) {
                Button btnTag = new Button(this);
                btnTag.setText(tabButtonNames[i]);
                btnTag.setWidth(50);
                btnTag.setHeight(14);
                btnTag.setTextSize(8);
                btnTag.setId(i);
                btnTag.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0) {
                        ---the code TODO
                });
                tabView.addView(btnTag);
            }
它们已创建,但我无法使用setWidth、setHeight或LayoutParam更改按钮的高度和宽度。然后按下一个按钮,我想在我的垂直布局中使用一个按钮名称数组创建一个更多按钮的列表。我在onClick方法中使用了与上面相同的代码,但按下按钮时应用程序崩溃。按钮btn=新按钮此按钮不能用于onClick。 我在I-Pad应用程序中很容易做到这一点,但在这里我遇到了麻烦。

使用

Button btn = new Button(getApplicationContext());

Button btn=新ButtonActivityName.this

而不是

 Button btn = new Button(this);

As按钮需要上下文。在OnClick中,活动的上下文是不可访问的。

Button btn=new Button这实际上是指您的clicklistiner,您必须引用您的类Button btn=new Button ClassName。这或在clickListener之外创建一个简单的函数。

只需在new Button中传递上下文,并设置布局参数,而不是高度和宽度

   for (int i = 0; i < tabButtonNames.length; i++) {
                Button btnTag = new Button(<-Context->);//You need to pass context just write <ActivityName>.this
                btnTag.setText(tabButtonNames[i]);
                LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(<width>,<height>);(50,40)


                //btnTag.setWidth(50);
                //btnTag.setHeight(14);
                btnTag.setTextSize(8);
                btnTag.setId(i);
                btnTag.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0) {

                        }



                });
                tabView.addView(btnTag);
                btnTag.setLayoutParams(params)
}

使用按钮btn=新建按钮应用程序上下文;请发布完整的相关代码和logcat错误。如果我想使用自己的方法怎么办?我必须使用clickListener吗?如果您希望在单击按钮时添加它。您需要实现Click Listener