簡體   English   中英

如何在按下按鈕時創建按鈕?

[英]How to create buttons on pressing a button?

我正在使用以下代碼使用按鈕名稱數組在水平布局中創建按鈕:

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

它們是創建的,但是我無法使用setWidthsetHeightLayoutParam更改按鈕的高度和寬度。 然后在按下按鈕時,我想使用按鈕名稱數組在垂直布局中創建更多按鈕的列表。 我在onClick方法中使用了與上面相同的代碼,但是按按鈕應用程序崩潰。 同樣, Button btn=new Button(this)不能在onClick中使用。 我已經在i-Pad應用程序中輕松完成了此操作,但是在這里遇到了麻煩。

采用

Button btn = new Button(getApplicationContext());

要么

Button btn = new Button(ActivityName.this);

代替

 Button btn = new Button(this);

作為按鈕需要上下文。 在OnClick中,無法訪問“活動”上下文。

Button btn=new Button(this)實際上是指您的clicklistiner,您必須引用您的class, Button btn=new Button(classname.this)或在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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM