我有一个包含布局的ViewFlipper。
有没有办法可以连接一个Class来单独管理每个布局?
有点像setContentView(R.layout.main);
,但我不确定如何在代码中引用3种不同的布局。
<?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" >
<ListView android:layout_width="wrap_content" android:id="@+id/ListView" android:layout_height="220dp"></ListView>
<ViewFlipper android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/LinearLayoutST" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
答案 0 :(得分:0)
您可以通过两种方式执行此操作:
将相应的类实例附加到要操作的视图或布局。如果您只想使用常规调用,设置OnClickListeners等,这就足够了:
LinearLayout layoutChart =(LinearLayout)findViewById(R.id.LinearLayoutChart);
如果需要覆盖默认的类行为(即子类),请创建扩展类:
public class LinearLayoutChart extends LinearLayout { ...}
确保实现所有父构造函数(即使只是传递给调用super ...),尤其是那些获取属性的构造函数。
在扩展程序类中实现自定义代码。
然后,编辑布局xml并将LinearLayout标记和结束标记替换为特殊类的完全限定类名,包括其包名
<com.mycompany.mypackage.LinearLayoutChart>
<!-- layout definition as before -->
</com.mycompany.mypackage.LinearLayoutChart>
这将使布局inflater实例化您的类而不是库存类,因此您可以覆盖受保护的方法等。