Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SimpleCursorAdapter的自定义listView_Java_Android_Listview_Simplecursoradapter - Fatal编程技术网

Java 使用SimpleCursorAdapter的自定义listView

Java 使用SimpleCursorAdapter的自定义listView,java,android,listview,simplecursoradapter,Java,Android,Listview,Simplecursoradapter,我已经创建了从appdb获取数据的ListView,当我只想在一个条目中显示一个信息(如团队名称)时,它工作正常 现在我试图显示更多信息,比如团队名称、日期和城镇(所有数据都来自db,由游标传递)。我不能让它工作,意图是显示ListView,但在任何条目中都没有文本。。。我不知道如何解释得更清楚 意图代码: public class Games extends Activity implements OnClickListener { Button bNewGame; ListView ga

我已经创建了从appdb获取数据的
ListView
,当我只想在一个条目中显示一个信息(如团队名称)时,它工作正常

现在我试图显示更多信息,比如团队名称、日期和城镇(所有数据都来自db,由游标传递)。我不能让它工作,意图是显示ListView,但在任何条目中都没有文本。。。我不知道如何解释得更清楚

意图代码:

 public class Games extends Activity implements OnClickListener {

Button bNewGame;
ListView gameList;
GameDayTableAdapter db;
Cursor c;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.games);
    bNewGame = (Button) findViewById(R.id.bNewGame);
    bNewGame.setOnClickListener(this);
    gameList = (ListView) findViewById(R.id.lvGameList);
    db = new GameDayTableAdapter(this);
    db.open();
    c = db.getAll();
    startManagingCursor(c);
    setListView();
}

private void setListView() {
    // TODO Auto-generated method stub
    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this,
            android.R.layout.simple_expandable_list_item_1, c,
            new String[] { AbstractDbAdapter.TEAM_NAME, AbstractDbAdapter.GAME_DAY_HOME_GAME, AbstractDbAdapter.GAME_DAY_DATE },
            new int[] { R.id.game_entry_team, R.id.game_entry_home, R.id.game_entry_date });
    gameList.setClickable(true);
    gameList.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {

        }
    });

    gameList.setAdapter(mAdapter);
    gameList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

}

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.bNewGame:
        Intent intent = new Intent(Games.this, NewGame.class);
        startActivity(intent);
        db.close();
        finish();
        break;
    }
}
公共类游戏扩展活动实现{
按钮bNewName;
ListView游戏列表;
GamedayTableDB;
光标c;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.games);
bNewGame=(按钮)findViewById(R.id.bNewGame);
bNewGame.setOnClickListener(此);
gameList=(ListView)findViewById(R.id.lvGameList);
db=新GameDayTableAdapter(此);
db.open();
c=db.getAll();
开始管理光标(c);
setListView();
}
私有void setListView(){
//TODO自动生成的方法存根
SimpleCursorAdapter mAdapter=新的SimpleCursorAdapter(此,
android.R.layout.simple_可扩展_列表_项目_1,c,
新字符串[]{AbstractDbAdapter.TEAM_NAME,AbstractDbAdapter.GAME_DAY_HOME_GAME,AbstractDbAdapter.GAME_DAY_DATE},
新int[]{R.id.game\u entry\u team,R.id.game\u entry\u home,R.id.game\u entry\u date});
游戏列表。可点击设置(真);
gameList.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView arg0,视图v,内部位置,长id){
}
});
gameList.setAdapter(mAdapter);
gameList.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
}
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
案例R.id.B新名称:
意向意向=新意向(Games.this、NewGame.class);
星触觉(意向);
db.close();
完成();
打破
}
}
game_list_entry.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/game_entry_team"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/game_entry_home"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        />

    <Space
        android:layout_width="50dp"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/game_entry_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"/>
</LinearLayout>


这就是我在一些在线教程的基础上所做的,但是没有,它不起作用,我不知道如何修复它。我找到了其他一些教程,其中人们创建了新的类,扩展了
SimpleCursorAdapter
,但这看起来像是很多额外的工作,我想知道是否有更简单的方法来完成它。

你正在设置g您的列表使用框架附带的expandablelist行视图。您需要指定自定义行视图

替换此项:

android.R.layout.simple_expandable_list_item_1
为此:

R.layout.game_list_entry

谢谢Sam,在我的智能手机上复制代码真的很痛苦。:p.(是的,我对它上瘾了。想做点什么吗?)。