基于安卓开发动态改变按钮的数量

来源:互联网 发布:数据交换平台的好处 编辑:程序博客网 时间:2024/06/07 06:25

完成这个小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

原创粉丝点击