添加相同的布局组件

来源:互联网 发布:数据的离散程度用描述 编辑:程序博客网 时间:2024/05/01 17:42
    package com.Aina.Android;            import android.app.Activity;      import android.os.Bundle;      import android.os.Handler;      import android.view.KeyEvent;      import android.view.View;      import android.widget.Button;      import android.widget.LinearLayout;      import android.widget.ScrollView;      import android.widget.TextView;            public class Test_ScrollView extends Activity {          /** Called when the activity is first created. */          private LinearLayout mLayout;          private ScrollView sView;          private final Handler mHandler = new Handler();                @Override          public void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);              setContentView(R.layout.main);              // 创建一个线性布局              mLayout = (LinearLayout) this.findViewById(R.id.LinearLayout);              // 创建一个ScrollView对象              sView = (ScrollView) this.findViewById(R.id.ScrollView);              Button mBtn = (Button) this.findViewById(R.id.Button);              mBtn.setOnClickListener(mClickListener);// 添加点击事件监听          }                public boolean onKeyDown(int keyCode, KeyEvent event){              Button b = (Button) this.getCurrentFocus();              int count = mLayout.getChildCount();              Button bm = (Button) mLayout.getChildAt(count-1);                    if(keyCode==KeyEvent.KEYCODE_DPAD_UP && b.getId()==R.id.Button){                  bm.requestFocus();                  return true;              }else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN && b.getId()==bm.getId()){                  this.findViewById(R.id.Button).requestFocus();                  return true;              }              return false;          }          // Button事件监听,当点击第一个按钮时增加一个button和一个textview          private Button.OnClickListener mClickListener = new Button.OnClickListener() {                    private int index = 1;                    @Override              public void onClick(View v) {                  TextView tView = new TextView(Test_ScrollView.this);//定义一个TextView                  tView.setText("TextView" + index);//设置TextView的文本信息                  //设置线性布局的属性                  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(                          LinearLayout.LayoutParams.FILL_PARENT,                          LinearLayout.LayoutParams.WRAP_CONTENT);                  mLayout.addView(tView, params);//添加一个TextView控件                  Button button = new Button(Test_ScrollView.this);//定义一个Button                  button.setText("Button" + index);//设置Button的文本信息                  button.setId(index++);                  mLayout.addView(button, params);//添加一个Button控件                  mHandler.post(mScrollToButton);//传递一个消息进行滚动              }                };          private Runnable mScrollToButton = new Runnable() {                    @Override              public void run() {                  int off = mLayout.getMeasuredHeight() - sView.getHeight();                  if (off > 0) {                      sView.scrollTo(0, off);//改变滚动条的位置                  }              }                };                  }