【发布时间】:2015-11-22 17:16:36
【问题描述】:
我想更改迄今为止创建的应用程序,以实现ListView。我关注了this example 和this example。仅这些示例有效,但不能与我必须对迄今为止现有的应用程序进行的更改一起使用。
我有一个avticity_main.xml,定义如下:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity" >
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
</android.support.design.widget.AppBarLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_grid"
android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
android:columnOrderPreserved="false"
android:columnCount="4"
>
<TextView
android:text="MainTitle"
android:textSize="32dip"
android:layout_columnSpan="4"
android:layout_gravity="center_horizontal"
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/list"
android:layout_height="wrap_content"
android:layout_width="match_parent">
</ListView>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
我的主要活动有以下代码:
public class MainActivity extends AppCompatActivity {
static final String[] MOBILE_OS =
new String[] { "Android", "iOS", "WindowsMobile", "Blackberry"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListView list = (ListView) findViewById(R.id.list);
list.setAdapter(new ListAdapter(this, MOBILE_OS));
代码编译正常,但没有显示列表。
【问题讨论】:
-
Any ideas?是的:不要使用 ListActivity。使用 ActionBarActivity(或 AppCompatActivity)。只需将您的 ListView 置于正常布局中即可。 -
您能否提供一个关于如何实现 ListView 的工作示例?也许我看错了例子!我试图在行中动态显示几个项目。我已经尝试了将近 4 个小时了...
-
是的,你看错了例子。或者...好吧,您将一些旧技术(ListActivity/ListFragment)与一些新技术(ActionBars)混合在一起。 ListActivity 所做的只是避免
onCreate()方法中的findViewById()部分。但是你非常有限(即:每个活动只有 1 个 ListView) -
可能是的!很难看出一个例子是“好”还是“不太好”。现在,代码编译但崩溃了......
-
您忘记了
findViewById()部分吗?还是您留下了“标准”ID ("@android:id/list")?