dan*_*y84 9 android listview android-layout
我动态地向a添加项目,ListView并希望使所有项目始终可见,而无需滚动.
布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/recipe_inside"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="16dp"
android:src="@drawable/head_cella" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="41dp"
android:background="@drawable/body_cella"
android:gravity="center_horizontal"
android:paddingTop="5dp"
android:text="Remember to save before leaving this page or inserted/modified data will be lost."
android:textColor="#000000"
android:textSize="13dp" />
<ImageView
android:id="@+id/ImageView01"
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_marginTop="30dp"
android:src="@drawable/head_cella" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:background="@drawable/body_cella"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:text="Category"
android:textColor="#000000"
android:textSize="15dp" />
<Spinner
android:id="@+id/category_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/ImageView02"
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_marginTop="30dp"
android:src="@drawable/head_cella" />
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:background="@drawable/body_cella"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:text="Name"
android:textColor="#000000"
android:textSize="15dp" />
<EditText
android:id="@+id/recipe_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Recipe title" android:lines="1"/>
<ImageView
android:id="@+id/ImageView03"
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_marginTop="30dp"
android:src="@drawable/head_cella" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:background="@drawable/body_cella"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:text="Ingredients"
android:textColor="#000000"
android:textSize="15dp" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" android:cacheColorHint="#00000000" android:divider="#00000000"
android:isScrollContainer="false"
>
</ListView>
<Button
android:id="@+id/button_ing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" android:background="@drawable/add_recipe_button" android:onClick="addItems"/>
</LinearLayout>
</ScrollView></LinearLayout>
Run Code Online (Sandbox Code Playgroud)
旧的OnCreate()函数代码:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.add_recipe_form);
spinner = (Spinner)myhead.findViewById(R.id.category_spinner);
Cursor cursor = mydb.getCategoriesList();
ArrayList<Category> list = new ArrayList<Category>();
list.add(new Category(0,"Choose a category"));
while (cursor.moveToNext()) {
list.add(new Category(cursor.getInt(0),cursor.getString(1)));
}
// Step 2: Create and fill an ArrayAdapter with a bunch of "State" objects
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
// Step 3: Tell the spinner about our adapter
spinner.setAdapter(spinnerArrayAdapter);
spinner.setOnItemSelectedListener(this);
setListAdapter(adapter);
ingredients.add((View)findViewById(R.layout.row_add_recipe));
adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
如果我移动与使用数据库数据填充我的微调器相关的代码,它总是返回一个NullPointerException,因为它在我的布局中找不到.所以我需要把它保留在这里,将addHeaderView()添加到我的ListView的解决方案似乎没问题,但是我的头部布局有另外一个NullPointerException:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.add_recipe_form);
ListView mylistview = (ListView) findViewById(android.R.id.list);
LinearLayout myhead = (LinearLayout)findViewById(R.id.linear_form);
mylistview.addHeaderView(myhead);
spinner = (Spinner)myhead.findViewById(R.id.category_spinner);
Cursor cursor = mydb.getCategoriesList();
ArrayList<Category> list = new ArrayList<Category>();
list.add(new Category(0,"Choose a category"));
while (cursor.moveToNext()) {
list.add(new Category(cursor.getInt(0),cursor.getString(1)));
}
// Step 2: Create and fill an ArrayAdapter with a bunch of "State" objects
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
// Step 3: Tell the spinner about our adapter
spinner.setAdapter(spinnerArrayAdapter);
spinner.setOnItemSelectedListener(this);
setListAdapter(adapter);
ingredients.add((View)findViewById(R.layout.row_add_recipe));
adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
如果我很理解你,你只需要一些可以与列表视图一起滚动的视图。实现它的最佳方法是addHeaderView()在addFooterView()您的ListView().
编辑:
我想事情应该是这样的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_main_layout);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View header = inflater.inflate(R.layout.your_header_layout); //R.layout, not R.id!
(ListView) list = findViewById(android.R.list);
list.addHeaderView(header);
list.setAdapter(adapter); //according to docs you should call setAdapter() after addHeaderView()
//to get the spinner
(Spinner) spinner = (Spinner) header.findViewById(R.id.spinner);
}
Run Code Online (Sandbox Code Playgroud)
我是凭记忆写的,没有测试过,但我认为它应该有效。当你有时间的时候尝试一下。
| 归档时间: |
|
| 查看次数: |
10732 次 |
| 最近记录: |