2012-04-01 106 views
4

好吧,我完成了这个网站的tutoriel,http://developer.android.com/resources/tutorials/views/hello-listview.html将项目添加到列表视图中的Android

我的问题是,我想将项目添加到嵌套在一个表格布局的列表。像这样。 enter image description here

我该怎么做?使用我当前的代码,当我选择所需的页面时,应用程序停止工作。假设myList存在...如果我注释掉setContentView(R.layout.log);列表显示,但没有我想要的布局。

public class LogActivity extends ListActivity{ 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.log); 

     ListView lv = getListView(); 
     lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myList)); 
     lv.setTextFilterEnabled(true); 
    } 
} 

..

<?xml version="1.0" encoding="UTF-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="10dp" > 

     <TextView 
      android:id="@+id/txt_currentDate" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="6" 
      android:gravity="center" 
      android:text="@string/CurrentDate" 
      android:textSize="18dp" 
      android:textStyle="bold" 
      android:typeface="serif" > 
     </TextView> 
    </TableRow> 

    <TableRow 
     android:id="@+id/progressBarRow" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <ProgressBar 
      android:id="@+id/DailyCalorieProgress" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_span="3" 
      android:progress="80" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="5dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:gravity="center" 
      android:text="@string/CalorieLimit" 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView2" 
      android:gravity="center" 
      android:text="@string/CalorieLimitData" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView3" 
      android:gravity="center" 
      android:text="@string/CaloriesLeft" 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView4" 
      android:gravity="center" 
      android:text="@string/CaloriesLeftData" > 
     </TextView> 
    </TableRow> 

    <TextView 
     android:id="@+id/textView5" 
     android:gravity="center_horizontal" 
     android:text="@string/Line" > 
    </TextView> 

    <TableRow android:paddingTop="10dp" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/CurrentFood" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/CurrentExercises" /> 
    </TableRow> 

    <!--<TableRow 
     android:id="@+id/tableRow4" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/txt_foodItem" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="@string/foodItem" 
      android:typeface="serif" > 
     </TextView> 

     <TextView 
      android:id="@+id/txt_Ammount" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="@string/ammount" 
      android:typeface="serif" > 
     </TextView> 

     <TextView 
      android:id="@+id/txt_calories" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="@string/calories" 
      android:typeface="serif" > 
     </TextView> 
    </TableRow>--> 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="203dp" > 
    </ListView> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/btn_add" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:text="@string/remove" /> 

     <Button 
      android:id="@+id/btn_remove" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toLeftOf="@id/btn_add" 
      android:text="@string/add" /> 
    </RelativeLayout> 

</TableLayout> 

回答

5

只是替换下面行与

ListView lv = getListView(); 
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myList)); 
lv.setTextFilterEnabled(true); 

ListView lv = (ListView)findViewById(R.id.listView); 
ArrayAdapter<String> myarrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myList); 
lv.setAdapter(myarrayAdapter); 
lv.setTextFilterEnabled(true); 

现在只需添加你的新项目在MYLIST并呼吁

myarrayAdapter.notifyDataChanged(); 

也改变了xml文件列表ID,并尝试

+0

如果我注释掉的setContentView(R.layout.log);列表显示,但没有所需的布局。如果我取消注释该行,则当我导航到日志页面时,该应用程序停止工作。任何想法为什么会这样做?我用你的代码替换了我的代码,即使它看起来是一样的。 – 2012-04-01 04:52:16

+0

我发誓我已经尝试过......它仍然无法正常工作。就像我说的,当我导航到日志页面时,应用程序说,不幸的是,该应用程序已停止工作。 – 2012-04-01 05:04:41

+0

请粘贴错误日志 – Ishu 2012-04-01 05:11:06

相关问题