我正在尝试创建一个Android应用程序,用户可以将他们在大学每年的课程分开。我们的想法是打开一个带有“添加年份”按钮的开始屏幕,当点击它时,它会在它上面或下面创建一个按钮(并不重要),他们可以创建一个自定义名称。必须保留“添加年份”按钮,以便他们可以根据需要添加多年/学期/ w / e。 我一直在关注本教程:http://developer.android.com/training/basics/firstapp/starting-activity.html 忽略有关添加文本字段的部分。当它获得关于使按钮做某事的部分时,教程将获取用户输入的文本并将其显示在新的xml中。
我在java方面的经验很少,每当我遇到困难时都会转向Google,但我找不到任何可以帮助我解决困境的事情。 这是我的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>
我的.java
package com.bkarpinski.macgpatrack;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/** Called when the user clicks the addYear button */
public void addYear(View view) {
Intent intent = new Intent(this, CreateNewYearButton.class);
}
}
请帮帮我!我必须在周三出席,我被卡住! d:
答案 0 :(得分:1)
最简单的方法是隐藏第二个按钮,然后单击第一个按钮使第二个按钮可见,首先使第二个按钮不可见
<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" />
然后将OnClickListener
方法与此
addYearButton = (Button) findViewById(R.id.add);
2ndButton = (Button) findViewById(R.id.button2);
addYearButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//when addYear is clicked show the new button
2ndButton.setVisibility(View.VISIBLE);
}
});
答案 1 :(得分:0)
要添加新的Button
,您可以使用类似
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
}
});
第二个答案in this question显示了如何添加Button
并添加params
,例如height
和width
。另请参阅the LayoutParam Docs。
如果您需要不确定数量的Button
,具体取决于点击Button
的次数,那么您可能希望使用此项。如果您有一些可以添加的Button
个Visibility
,那么更改 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addYearButton = (Button) findViewById(R.id.add);
}
就可以了。
修改强>
Button
这是您应该初始化第一个onCreate()
并在Button addYearButton;
之前使用Button
进行声明的地方。此外,您需要activity_main.xml
id
add
{{1}} {/ 1}}。