MainActivity.xml
package com.example.uidemo1;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import android.support.v4.app.NavUtils;
import android.text.AndroidCharacter;
public class MainActivity extends Activity {
// 获得activity_main中的这个button
Button button1;
EditText editText1;
EditText editText2;
public static final int BID = 1;
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1: //在这里中有两个button1的,为了区别开来,使用tag标记。
if(v.getTag().toString().equals("xml_btn")) {
// 显示提示按钮
AlertDialog.Builder dialogBuilder = new Builder(
MainActivity.this);
Toast.makeText(MainActivity.this, "这里是点击activity_main.xml中的效果",
Toast.LENGTH_LONG).show();
dialogBuilder.setTitle("这里是点击activity_main.xml中的效果");
dialogBuilder.setMessage("activity_main.xml");
dialogBuilder.setPositiveButton("ok", null);
dialogBuilder.setNegativeButton("ok2", null);
dialogBuilder.show();
}
if (v.getTag().toString().equals("dialog_btn")) {
//文本框2中显示的文本框1中的内容。
editText2.setText(editText1.getText().toString());
}
break;
case BID:
AlertDialog.Builder dialoBuilder = new Builder(
MainActivity.this);
dialoBuilder.setTitle("自己生成的按钮中添加视图效果");
// 获得LayoutInflater
LayoutInflater inflater = (LayoutInflater) MainActivity.this
.getSystemService(MainActivity.this.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.dialog, null);
//因为dialog.xml封装成了一个view对象
editText1 = (EditText) view.findViewById(R.id.editText1);
editText2= (EditText) view.findViewById(R.id.editText2);
button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener(onClickListener);
dialoBuilder.setView(view);
dialoBuilder.setNegativeButton("ok2", null);
dialoBuilder.show();
break;
default:
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 第一种创建LayoutInflater的方法
// LayoutInflater inflater = (LayoutInflater)this.getSystemService
// (this.LAYOUT_INFLATER_SERVICE);
// 第二种创建inflater的方式。
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
// 把activity_main变成一个view对象
View view = inflater.inflate(R.layout.activity_main, null);
Button myButton = new Button(this);
myButton.setText("我自己的按钮");
//设置宽度
myButton.setWidth(200);
myButton.setId(BID);
// 创建一个linearLayout.
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.addView(myButton);
// 如果想将自己的linearLayout添加到activity_main中,
// 注意要将下面的this改成view,否则将出现错误(空指针异常)。
LinearLayout linearLayout2 = (LinearLayout) view
.findViewById(R.id.lin1);
linearLayout2.addView(linearLayout);
// 说明只要在setContentView中加上一个view即可。
setContentView(linearLayout2);
button1 = (Button) view.findViewById(R.id.button1);
button1.setOnClickListener(onClickListener);
// 为我自己的button设置监听。
myButton.setOnClickListener(onClickListener);
}
}
activity_main.xml
<LinearLayout 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:orientation="vertical"
android:id="@+id/lin1">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="xml_btn"
android:text="activity_main中的按钮"/>
</LinearLayout>
dialog.xml
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="dialog_btn"
android:text="将上面文本框中的内容显示在下面" />
</LinearLayout>