Android 在滑动页面中使用ListView
您好,我有一个包含3页的滑动页面示例,我想在此示例中添加一个列表视图。Android 在滑动页面中使用ListView,android,eclipse,listview,swipe,swipeview,Android,Eclipse,Listview,Swipe,Swipeview,您好,我有一个包含3页的滑动页面示例,我想在此示例中添加一个列表视图。 但当我尝试运行eclipse时,我会说“您的内容必须有一个id属性为‘android.R.id.list’的ListView”。我不知道怎么了。 我的主要活动布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android
但当我尝试运行eclipse时,我会说“您的内容必须有一个id属性为‘android.R.id.list’的ListView”。我不知道怎么了。
我的主要活动布局
<?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" >
<android.support.v4.view.ViewPager
android:id="@+id/customviewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
主要活动
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create and set adapter
CustomPagerAdapter adapter = new CustomPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.customviewpager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
String[] ex=new String[10];
ex[0]="1";
ex[1]="2";
ex[2]="3";
ex[3]="1";
ex[4]="2";
ex[5]="3";
ex[6]="1";
ex[7]="2";
ex[8]="3";
ex[9]="3";
setContentView(R.layout.page_2);
ListView myList=(ListView)findViewById(android.R.id.list);
ListAdapter la=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ex);
myList.setAdapter(la);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/**
* Click button on blue page
*/
public void onClickBlueButton(View v) {
Toast.makeText(getApplicationContext(), "Blue screen", Toast.LENGTH_SHORT).show();
}
/**
* Click button on yellow page
*/
public void onClickYellowButton(View v) {
Toast.makeText(getApplicationContext(), "Yellow screen", Toast.LENGTH_SHORT).show();
}
/**
* Click button on red page
*/
public void onClickRedButton(View v) {
Toast.makeText(getApplicationContext(), "Red screen", Toast.LENGTH_SHORT).show();
}
}
公共类MainActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建并设置适配器
CustomPagerAdapter适配器=新的CustomPagerAdapter();
ViewPager myPager=(ViewPager)findViewById(R.id.customviewpager);
设置适配器(适配器);
myPager.setCurrentItem(1);
字符串[]ex=新字符串[10];
ex[0]=“1”;
ex[1]=“2”;
ex[2]=“3”;
ex[3]=“1”;
ex[4]=“2”;
ex[5]=“3”;
ex[6]=“1”;
ex[7]=“2”;
ex[8]=“3”;
ex[9]=“3”;
setContentView(R.layout.page_2);
ListView myList=(ListView)findViewById(android.R.id.list);
ListAdapter la=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,ex);
myList.setAdapter(la);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
/**
*单击蓝色页面上的按钮
*/
公共无效单击按钮(视图v){
Toast.makeText(getApplicationContext(),“蓝屏”,Toast.LENGTH\u SHORT.show();
}
/**
*点击黄页上的按钮
*/
公共void onClickYellowButton(视图v){
Toast.makeText(getApplicationContext(),“黄屏”,Toast.LENGTH\u SHORT.show();
}
/**
*单击红色页面上的按钮
*/
公共void onClickRedButton(视图v){
Toast.makeText(getApplicationContext(),“红屏”,Toast.LENGTH\u SHORT.show();
}
}
您的XML中有列表视图
,但您没有将适配器传递给它。创建一个列表视图
,并将适配器传递到此列表视图
试试这个
ListView myList=(ListView)findViewById(android.R.id.list);
myList.setAdapter(la);
XML中有
ListView
,但没有将适配器传递给它。创建一个列表视图
,并将适配器传递到此列表视图
试试这个
ListView myList=(ListView)findViewById(android.R.id.list);
myList.setAdapter(la);
这是因为您正在扩展ListActivity。ListActivity从android软件包中查找具有特定标识符的ListView 看看你的列表活动的这一行
setContentView(R.layout.activity_main);
ListActivity正在扩大主活动的布局,而不是页面2(包含listview)的布局 您需要在ListActivity的onCreate中更改该行,以扩大正确的布局。假设您的ListActivity布局称为R.layout.list\u activy。那条线就变成了
setContentView(R.layout.list_activity);
我不确定包含listview的布局文件的名称,而不是您当前拥有的名称。您没有提到它(第页?)
编辑:我刚刚记得ListActivity可能根本不需要调用setContentView(),因为您可以在setAdapter()中将父布局传递给适配器。尝试完全删除该行,只需调用setAdapter即可。这两种方法都应该有效,因为您正在扩展ListActivity。ListActivity从android软件包中查找具有特定标识符的ListView 看看你的列表活动的这一行
setContentView(R.layout.activity_main);
ListActivity正在扩大主活动的布局,而不是页面2(包含listview)的布局 您需要在ListActivity的onCreate中更改该行,以扩大正确的布局。假设您的ListActivity布局称为R.layout.list\u activy。那条线就变成了
setContentView(R.layout.list_activity);
我不确定包含listview的布局文件的名称,而不是您当前拥有的名称。您没有提到它(第页?)
编辑:我刚刚记得ListActivity可能根本不需要调用setContentView(),因为您可以在setAdapter()中将父布局传递给适配器。尝试完全删除该行,只需调用setAdapter即可。这两种方法都应该有效,尽管我尝试过,但仍然不起作用。ListAdapter la=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,ex);ListView myList=(ListView)findViewById(android.R.id.list);myList.setAdapter(la);错误您的内容必须有一个id属性为“android.R.id.list”的ListView。我尝试了一下,但仍然不起作用。ListAdapter la=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,ex);ListView myList=(ListView)findViewById(android.R.id.list);myList.setAdapter(la);错误您的内容必须具有id属性为“android.R.id.list”的ListView您的ListActivity正在扩大主活动的布局,而不是页面2(包含ListView)的布局。请查看我的最新答案,并让我知道它是否正确works@ggmax这是否解决了您的问题??您的ListActivity正在扩大主活动的布局,而不是页面2(包含listview)的布局。请查看我的最新答案,并让我知道它是否正确works@ggmax这是否解决了您的问题??您需要更改ListActivity中的setContentView()行,以扩大包含listview的正确布局。请查看我的更新答案是的,我看到了,但问题是当我将setContentView()从(R.layout.activity_main)更改为(R.layout.list_activity)时,我的滑动寻呼机无法工作。再次感谢。R.layout.list_活动是包含ListView的布局文件的实际名称吗?尝试完全删除对setContentView()的调用。ListActivity仍将查找传递给适配器的布局。如果它不是R.layout.page_2,我现在将ListActivity更改为activity,但我的寻呼机滑动不起作用。请查看我编辑的活动。如果将ListActivity更改为activity,则必须将listview的ID而不是android.R.ID.list更改为其他内容。您需要更改列表中的setContentView()行
setContentView(R.layout.list_activity);