当我尝试在列表视图中显示文本时,我发现了一些问题。
ListView类中的代码是:
package org.practical.newsupdate;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MenuView extends NewsfeedApp2Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ListView menuList = (ListView) findViewById(R.id.menuview);
String[] items = getResources().getStringArray(R.array.menu_array);
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,
R.layout.menuview, items);
menuList.setAdapter(adapt);
}
}
main.xml的代码是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/ScreenTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="ScreenTitle" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
<ListView
android:id="@+id/MenuView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.88" android:visibility="visible">
</ListView>
<ImageView
android:id="@+id/Picture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
string.xml文件的代码是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, NewsfeedApp2Activity!</string>
<string name="app_name">NewsfeedApp2</string>
<string name="ScreenTitle">ScreenTitle</string>
<string-array name="menu_array">
<item>NewsPage</item>
<item>Settings</item>
<item>Help</item>
<item>About</item>
</string-array>
</resources>
主java文件的代码是:
package org.practical.newsupdate;
import android.app.Activity;
import android.os.Bundle;
public class NewsfeedApp2Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
并且menuview.xml文件的代码是:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menuview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"/>
androidmanifest.xml文件包含以下代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.practical.newsupdate"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="14" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".NewsfeedApp2Activity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="MenuView"></activity>
<activity android:name="About"></activity>
<activity android:name="Help"></activity>
<activity android:name="NewsPage"></activity>
<activity android:name="Settings"></activity>
</application>
</manifest>
有人能帮助我吗?
非常感谢
答案 0 :(得分:0)
您正在使用ArrayAdapter(Context context,int textViewResourceId,T [] objects)构造函数,它期望作为第二个参数显示数据的文本视图的id,但是您为它提供了menuview.xml布局的id 。您应该使用ArrayAdapter(Context context,int resource,int textViewResourceId,T [] objects)构造函数,例如:
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,
R.layout.menuview,
R.id.menuview,
items);
有了这个,你告诉你的适配器:
这可能不是很清楚,因为您使用“menuview”作为布局的名称和作为其中视图的ID ......
编辑:还作为ListView的ID。这可能不会打扰Android,但这不利于代码的清晰度:)