Android 安卓Eclipse-点击后创建另一个按钮的按钮

Android 安卓Eclipse-点击后创建另一个按钮的按钮,android,eclipse,button,onclick,android-widget,Android,Eclipse,Button,Onclick,Android Widget,我正在尝试创建一个android应用程序,用户可以在其中划分他们在大学每一年所学的课程。我们的想法是在一个带有“添加年份”按钮的屏幕上打开一个按钮,当它被点击时,它会在上面或下面创建一个按钮(其实并不重要),他们可以为它创建一个自定义名称。“添加年份”按钮必须保持不变,以便他们可以根据需要添加任意数量的年份/学期/w/e。 我一直在学习本教程: 忽略有关添加文本字段的部分。当它得到关于使按钮执行某些操作的部分时,教程将获取用户输入的文本并以新的xml显示 我在java方面的经验很少,每当我陷入困

我正在尝试创建一个android应用程序,用户可以在其中划分他们在大学每一年所学的课程。我们的想法是在一个带有“添加年份”按钮的屏幕上打开一个按钮,当它被点击时,它会在上面或下面创建一个按钮(其实并不重要),他们可以为它创建一个自定义名称。“添加年份”按钮必须保持不变,以便他们可以根据需要添加任意数量的年份/学期/w/e。 我一直在学习本教程: 忽略有关添加文本字段的部分。当它得到关于使按钮执行某些操作的部分时,教程将获取用户输入的文本并以新的xml显示

我在java方面的经验很少,每当我陷入困境时,我都会求助于谷歌,但我还没有找到任何有助于我解决困境的方法。 这是我的activity_main.xml文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/main_background"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >

        <Button
            android:id="@+id/button_add_year"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="39dp"
            android:text="@string/button_add_year"
            android:onClick="addYear" />

    </RelativeLayout>

请帮帮我!我必须在这个星期三演讲,我被卡住了!!D:

要添加新的
按钮
,您可以使用以下命令以编程方式创建它

addYearButton = (Button) findViewById(R.id.add);

addYearButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) 
  {
      //when addYear is clicked show the new button
      Button b = new Button(v.getContext());  // create Button
      b.setText("Some text on Button");      //  Set the text of the Button
      // set params and add button to layout

    }
});
第二个答案显示了如何添加
按钮
,并向其添加
参数
,例如
高度
宽度
。另见

如果您需要一个不确定数量的
按钮
s,具体取决于单击
按钮
的次数,那么您可能需要使用此按钮。如果您有一些可添加的
按钮
s的设置数量,则更改
可见性
将起作用

编辑

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addYearButton = (Button) findViewById(R.id.add);  
    }

在这里,您应该初始化第一个
按钮
,并使用
按钮addYearButton在
onCreate()之前声明它。另外,您需要在
activity_main.xml
中使用
id
按钮
添加
,要添加一个新的
按钮
,您可以使用类似

addYearButton = (Button) findViewById(R.id.add);

addYearButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) 
  {
      //when addYear is clicked show the new button
      Button b = new Button(v.getContext());  // create Button
      b.setText("Some text on Button");      //  Set the text of the Button
      // set params and add button to layout

    }
});
第二个答案显示了如何添加
按钮
,并向其添加
参数
,例如
高度
宽度
。另见

如果您需要一个不确定数量的
按钮
s,具体取决于单击
按钮
的次数,那么您可能需要使用此按钮。如果您有一些可添加的
按钮
s的设置数量,则更改
可见性
将起作用

编辑

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addYearButton = (Button) findViewById(R.id.add);  
    }

在这里,您应该初始化第一个
按钮
,并使用
按钮addYearButton在
onCreate()之前声明它。此外,您还需要在
activity_main.xml
中使用
id
按钮
添加
,最简单的方法是隐藏第二个按钮,然后单击第一个按钮,使第二个按钮可见,然后使用此按钮使第二个按钮不可见

 <Button
   android:id="@+id/button2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
   android:layout_centerVertical="true"
   android:text="2ndButton"
   android:visibility="invisible" />

最简单的方法是隐藏第二个按钮,然后单击第一个按钮,使第二个按钮可见,然后使用此按钮使第二个按钮不可见

 <Button
   android:id="@+id/button2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
   android:layout_centerVertical="true"
   android:text="2ndButton"
   android:visibility="invisible" />

到底是什么问题?什么是/不工作?它现在工作,但我不知道如何使按钮在同一屏幕上创建另一个按钮。它调用CreateNewYear.class,但是这个类是空的,因为我不知道从哪里开始,到底是什么问题?什么是/不工作?它现在工作,但我不知道如何使按钮在同一屏幕上创建另一个按钮。它调用CreateNewYear.class,但该类为空,因为我不知道从那里开始,这与2小时前给出的答案相同。@user251182不,不是。我正在演示如何以编程方式(而不是通过xml)添加
按钮。这是一种完全不同的方法,而不仅仅是更改预先构建的
按钮的
可见性?因为当我把它放在java中时,它会给我一条错误消息,在第一个AddYearButton下面划线。这段代码会出现在java代码中,但您仍然需要xmlR.id中的
add
按钮。add给了我问题,这与2小时前给出的答案相同。@user251182不,不是。我正在演示如何以编程方式(而不是通过xml)添加
按钮。这是一种完全不同的方法,而不仅仅是更改预先构建的
按钮的
可见性?因为当我把它放在java中时,它会给我一条错误消息,在第一个AddYearButton下面划线。这段代码会在java代码中,但您仍然需要xmlR.id中的
add
按钮。add给了我一个问题我能用if语句让它添加后续的按钮吗?类似于if(2ndbutton.visibility==true)3rdButton.setVisibility(view.visibility)?是否可以使用if语句使其添加后续按钮?类似于if(2ndbutton.visibility==true)3rdButton.setVisibility(view.visibility)?