Android:布局无法解析或不是字段

时间:2014-03-22 17:55:58

标签: java android xml

我有这个主要活动:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.ArrayAdapter;
import android.widget.ListView;

//Array of options --> ArrayAdapter --> ListView

//List view: {views: list_items.xml}


public class MainActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); 

    populateListView();
}
private void populateListView() {
    //Create list of items
    String[] myItems = {"Blue", "Green", "Purple", "Red"};

    //Build Adapter
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this                   //Context for the activity
            R.layout.list_items,   //Layout to use (Create)
            myItems);              //Items to be displayed

    //Configure the ListView
    ListView list = (ListView) findViewById(R.id.listViewMain);
    list.setAdapter(adapter);

    ViewPager myViewPager = (ViewPager) findViewById(R.id.viewPager);
    myViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    myViewPager.setCurrentItem(1, false);
}

private class MyPagerAdapter extends FragmentPagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int pos) {
        switch(pos) {

        case 2: return FirstFragment.newInstance("FirstFragment, Instance 1");
        case 1: return SecondFragment.newInstance("SecondFragment, Instance 1");
        case 0: return ThirdFragment.newInstance("ThirdFragment, Instance 1");
        default: return ThirdFragment.newInstance("ThirdFragment, Default");
        }
    }

    @Override
    public int getCount() {
        return 3;
    }       


    {}}}

我正在尝试添加listview,我创建了一个名为:list_items.xml的xml文件,但是在这一行:&#34; R.layout.list_items,&#34;我收到一个错误:&#34;布局无法解决或不是字段&#34;我还在令牌&#34; R&#34;上得到#34;语法错误,删除此令牌&#34;。那是为什么?

list_items.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >


 </TextView>

2 个答案:

答案 0 :(得分:1)

我相信您误解了 ArrayAdapter 的构造函数。

您基本上需要做的是将 R.layout.list_items 更改为单个元素布局,就像您在android.R中找到的那样。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, values);

在这里您可以看到第一个参数是上下文,第二个参数是单个项目布局,第三个(可选)是您要用字符串集合和最后一个字符串定位的文本视图的ID一个是集合。

您可以像以前一样使用自己的布局。

如果您有任何问题,我将很乐意回答,并在必要时提供一些代码。

答案 1 :(得分:1)

它在你的xml中看起来有错误。如果你只需要显示myItems字符串,你也可以使用简单的列表项。

    String[] myItems = {"Blue", "Green", "Purple", "Red"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, myItems);