自定义Layout xml文件转换成View对象和Activity关联的实现
2013-08-16 12:49
567 查看
如何把一个layout文件转换成view对象添加到对应的容器内呢?
下面以一个例子来说明这一点:
主布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="实现Layout和Activity关联"
/>
<Button android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="测试"/>
</LinearLayout>
把下面一个xml布局文件添加到AlertDialog中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relativeLayout1" android:layout_height="fill_parent"
android:layout_width="fill_parent" android:padding="10dip">
<TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="TextView"></TextView>
<EditText android:background="@android:drawable/editbox_background" android:id="@+id/entry" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_below="@+id/textView1" android:layout_alignLeft="@+id/textView1">
<requestFocus></requestFocus>
</EditText>
<Button android:text="确定" android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_toLeftOf="@id/button1"
android:layout_alignTop="@id/button1"></Button>
<Button android:text="取消" android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@+id/entry"
android:layout_marginLeft="10dip" android:layout_alignParentRight="true"></Button>
</RelativeLayout>
在Activity如何实现上面布局文件和dialog之间的关联呢 ?
public class Layout_Activity_DialogActivity extends Activity {
private Button mybutton=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybutton=(Button)findViewById(R.id.mybutton);
mybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.view_dialog, null);
new AlertDialog.Builder(Layout_Activity_DialogActivity.this)
.setTitle("My Dialog")
.setMessage("Layout和Dialog关联")
.setView(view)
.show();
}
});
}
}
红色部分的功能就是把一个xml布局文件解析成View对象,然后我们就可以把它添加到任何我们想添加到的容器内。
下面以一个例子来说明这一点:
主布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="实现Layout和Activity关联"
/>
<Button android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="测试"/>
</LinearLayout>
把下面一个xml布局文件添加到AlertDialog中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relativeLayout1" android:layout_height="fill_parent"
android:layout_width="fill_parent" android:padding="10dip">
<TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="TextView"></TextView>
<EditText android:background="@android:drawable/editbox_background" android:id="@+id/entry" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_below="@+id/textView1" android:layout_alignLeft="@+id/textView1">
<requestFocus></requestFocus>
</EditText>
<Button android:text="确定" android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_toLeftOf="@id/button1"
android:layout_alignTop="@id/button1"></Button>
<Button android:text="取消" android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@+id/entry"
android:layout_marginLeft="10dip" android:layout_alignParentRight="true"></Button>
</RelativeLayout>
在Activity如何实现上面布局文件和dialog之间的关联呢 ?
public class Layout_Activity_DialogActivity extends Activity {
private Button mybutton=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybutton=(Button)findViewById(R.id.mybutton);
mybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.view_dialog, null);
new AlertDialog.Builder(Layout_Activity_DialogActivity.this)
.setTitle("My Dialog")
.setMessage("Layout和Dialog关联")
.setView(view)
.show();
}
});
}
}
红色部分的功能就是把一个xml布局文件解析成View对象,然后我们就可以把它添加到任何我们想添加到的容器内。
相关文章推荐
- 自定义Layout xml文件转换成View对象和Activity关联的实现
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- springboot实现将配置文件的属性转换成一个对应的pojo对象的属性
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byt
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- JAVA中实现图片对象转换成图片文件和字节数组(Byte[ ])的方法讨论
- php实现数组中索引关联数据转换成json对象的方法
- 利用XStream实现实体对象和xml文件相互转换
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
- 借助webview实现apk文件转换之技术实现
- WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
- 借助webview实现apk文件转换之环境部署与项目搭建
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- php实现数组中索引关联数据转换成json对象的方法
- Android中Activity在跳转时传递实体类对象的实现(实体类含有布尔值)
- 使用xib文件和自定义类来实现自定义View(如何利用xib封装一个View)
- 使用RecyclerView实现滑动添加、滑动删除,以及瀑布流、ListView、GridView的转换
- Android开发-进阶:Json字符串转换为java对象的各种实现方法[json_lib框架、Gson、org.json]