问题描述
|
我不确定自己对这种编程语言的了解...还是与此有关的任何事情,都无法做到这一点。让我们看看我是否可以说得通,以便获得帮助。
我正在对数据库运行查询,以提取数据库中的所有条目
DBAdapter.java的一部分:
//***RETRIEVES ALL THE FINALscoreS***//
public Cursor getAllFinalscores()
{
return db.query(DATABASE_TABLE,new String[] {
KEY_ROWID,KEY_DATE,KEY_FINALscore,KEY_HOLESPLAYED},null,null);
}
然后,我创建了一个扩展ListActivity的单独的类(因为我希望所有内容都显示在listview中。
PastGames.java
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class PastGames extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pastgames);
DBAdapter db = new DBAdapter(this);
db.open();
Cursor c = db.getAllFinalscores();
if (c.movetoFirst())
{
do {
String[] listData = new String [] {c.getString(1),c.getString(2),c.getString(3)};
this.setlistadapter(new ArrayAdapter<String>(this,R.layout.pastgames,listData));
}
while (c.movetoNext());
}
db.close();
}
}
然后我从Main活动中调用它(请注意,它不会扩展ListActivity
@Override
public boolean onoptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.past_games:
Intent intentListGames = new Intent().setClass( this,PastGames.class );
this.startActivityForResult( intentListGames,0 );
return true;
}
return true;
}
因此,如果我正确理解这一点,那么我将从主活动(然后启动PastGames.java)并在PastGames.java中调用PastGames.java-onCreate我正在打开数据库,运行查询,关闭并希望将其放入listview
在模拟器中运行该选项时,我在LogCat中得到以下信息:
06-13 22:10:36.581: ERROR/AndroidRuntime(204): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.deckert/com.deckert.PastGames}: java.lang.classCastException: android.widget.TextView
06-13 22:10:36.581: ERROR/AndroidRuntime(204): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2496)
06-13 22:10:36.581: ERROR/AndroidRuntime(204): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
06-13 22:10:36.581: ERROR/AndroidRuntime(204): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
有人可以帮我了解为什么这不起作用吗?
在此先感谢您,对于我的宝贵帖子深表歉意!
解决方法
您在
ArrayAdapter
和PastGamesActivity
根视图中使用的布局相同。我想象您不想将“ 6”的布局用于“活动”布局。我认为这是造成ѭ7的原因,因为您的ѭ6的布局可能被定义为仅使用简单的ѭ9,并且活动处于爆炸状态,无法将ѭ6强制转换为ѭ9。
, 您没有正确创建要传递给listView的适配器。如果您看一下适配器的构造函数,则正在等待TextView。而且对于主布局和此textView您没有相同的资源。我认为您需要创建Textview并将其传递给构造函数;)