完成这个小Demo分三个步骤.实现详细如下所示:
效果图如下:
1:首先建立创建main.xml文件,包括两个按钮,通过点击按钮来触发相应的事件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/llt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add" />
<Button
android:id="@+id/sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="50dip"
android:text="@string/sub" />
</LinearLayout>
</LinearLayout>
2:在String.xml文件中定义如下:
<resources>
<string name="app_name">GenerateBtn_demo</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">按钮数量动态变化的demo</string>
<string name="add">增加按钮</string>
<string name="sub">减少按钮</string>
<string name="newbtn">新增按钮</string>
<string name="note">已经没有可以减少的按钮啦</string>
</resources>
3:在MainActivity.java中写相应的触发事件,包括按钮的增加与删除实现如下:
package com.example.generatebtn_demo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity
{
private int count = 0;
private Button sub, add, tempbuttonButton;
private List<Integer> mInts;
private LinearLayout llLayout;
private String msg;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sub = (Button) findViewById(R.id.add);
add = (Button) findViewById(R.id.sub);
msg = MainActivity.this.getResources().getString(R.string.newbtn);
mInts = new ArrayList<Integer>();
sub.setOnClickListener(operateListener);
add.setOnClickListener(operateListener);
}
private OnClickListener operateListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
Button btnButton = (Button) v;
switch (btnButton.getId())
{
case R.id.add:
llLayout = (LinearLayout) findViewById(R.id.llt);
tempbuttonButton = new Button(MainActivity.this);
tempbuttonButton.setText(msg + (++count));
mInts.add(count);
tempbuttonButton.setWidth(80);
llLayout.addView(tempbuttonButton);
break;
case R.id.sub:
if ((count - 1) >= 0)
{
llLayout.removeViewAt(mInts.get(count - 1));
count--;
} else
{
Toast.makeText(MainActivity.this, R.string.note, Toast.LENGTH_SHORT).show();
}
default:
break;
}
}
};
}
详细源码请参考:http://download.csdn.net/detail/anliang123abc/4958844#comment