bar*_*kin 13 android viewflipper
我有以下主要布局:
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<ViewFlipper android:id="@+id/viewstack"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Here I want to add my views which are located in separated xml files. -->
</ViewFlipper>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以下是我的观点示例:
view_url.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:gravity="center">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnGenerate"
android:text="Generate"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
view_text.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:contentDescription="Enter your text here"
android:layout_width="fill_parent"
android:height="200dp"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想添加视图:
viewstack = (ViewFlipper) findViewById(R.id.viewstack);));
View viewText = (View) findViewById(R.layout.view_text);
viewstack.addView(viewText); < -- Emulator is crashing at this line
View viewUrl = (View) findViewById(R.layout.view_url);
viewstack.addView(viewUrl);
Run Code Online (Sandbox Code Playgroud)
我不知道我的代码有什么问题.我决定将所有视图放在一个文件中,但我仍然想知道如何修复我的初始代码.
Yout View viewUrl = (View) findViewById(R.layout.view_url);非常错误.findViewById有点像get(String key)方法,你的目录是你当前视图/活动的目录.它只在其子项下查找具有该Id的元素.
要使用XML文件创建Java对象,您需要使用LayoutInflater.这是非常简单的,你得到的对象可以传递给viewstack.addView(..)方法.
实现此目的的另一种方法是通过使用include,merge标记或ViewStub将其他XML文件包含到第一个XML文件中.根据您的要求,这些可能不是一个选项,但是您所描述的应该是,并且您应该使用这些而不是以编程方式执行它,因为它以这种方式更干净.
也许这有帮助:
this.flipper=(ViewFlipper)findViewById(R.id.flipper);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.viewLoader=(View)inflater.inflate(R.layout.search_result_grid, null);
flipper.addView(viewLoader);
this.viewResultGrid=(View)inflater.inflate(R.layout.search_result_grid, null);
gvSearchResult=(GridView)viewResultGrid.findViewById(R.id.gridViewSearchResult);
flipper.addView(viewResultGrid);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19032 次 |
| 最近记录: |