Android 如何创建listview对象

Android 如何创建listview对象,android,listview,Android,Listview,嗨,我想做的是当玩家输掉比赛时,一个高分列表以列表视图的形式占据了屏幕的一半。我正在尝试使用一个从xml中膨胀的listview对象,但我不知道如何做到这一点 我试过: LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); ListView lv = (ListView) inflater.inflate(R.id.highscores

嗨,我想做的是当玩家输掉比赛时,一个高分列表以列表视图的形式占据了屏幕的一半。我正在尝试使用一个从xml中膨胀的listview对象,但我不知道如何做到这一点

我试过:

LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

ListView lv = (ListView) inflater.inflate(R.id.highscores,null);
但它一直告诉我lv是空的

以下是我的xml:


编辑:

现在,对ListView进行膨胀是可行的,但我得到了以下错误:

03-15 23:05:01.351: ERROR/AndroidRuntime(2555): Uncaught handler: thread Thread-11 
exiting due to uncaught exception
03-15 23:05:01.371: ERROR/AndroidRuntime(2555): android.view.InflateException: Binary
 XML file line #9: Error inflating class java.lang.reflect.Constructor
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
android.view.LayoutInflater.createView(LayoutInflater.java:512)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:564)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
android.view.LayoutInflater.rInflate(LayoutInflater.java:617)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
android.view.LayoutInflater.inflate(LayoutInflater.java:407)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
android.view.LayoutInflater.inflate(LayoutInflater.java:320)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at
android.view.LayoutInflater.inflate(LayoutInflater.java:276)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
com.SpaceShot.single$singleThread.doDraw(single.java:503)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
com.SpaceShot.single$singleThread.run(single.java:1754)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555): 
Caused by: 
java.lang.reflect.InvocationTargetException
03-15 23:05:01.371: ERROR/AndroidRuntime(2555): at com.SpaceShot.single.<init>
(single.java:1922)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):  at 
java.lang.reflect.Constructor.constructNative(Native Method)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at     
java.lang.reflect.Constructor.newInstance(Constructor.java:446)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at 
android.view.LayoutInflater.createView(LayoutInflater.java:499)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     ... 7 more
03-15 23:05:01.371: ERROR/AndroidRuntime(2555): 
Caused by: java.lang.RuntimeException:
Can't create handler inside thread that has not called Looper.prepare()
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at android.os.Handler.<init>
(Handler.java:121)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at android.view.SurfaceView$1.
<init>(SurfaceView.java:107)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     at android.view.SurfaceView.<init>
(SurfaceView.java:105)
03-15 23:05:01.371: ERROR/AndroidRuntime(2555):     ... 11 more
03-15 23:05:01.351:错误/AndroidRuntime(2555):未捕获处理程序:线程-11
由于未捕获异常而退出
03-15 23:05:01.371:错误/AndroidRuntime(2555):android.view.InflateException:二进制
XML文件行#9:膨胀类java.lang.reflect.Constructor时出错
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
createView(LayoutInflater.java:512)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
createViewFromTag(LayoutInflater.java:564)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
rInflate(LayoutInflater.java:617)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
膨胀(LayoutInflater.java:407)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
膨胀(LayoutInflater.java:320)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
膨胀(LayoutInflater.java:276)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
single$singleThread.doDraw(single.java:503)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
single$singleThread.run(single.java:1754)
03-15 23:05:01.371:错误/AndroidRuntime(2555):
原因:
java.lang.reflect.InvocationTargetException
03-15 23:05:01.371:ERROR/AndroidRuntime(2555):在com.SpaceShot.single上。
(single.java:1922)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
java.lang.reflect.Constructor.constructNative(本机方法)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
newInstance(Constructor.java:446)
03-15 23:05:01.371:错误/AndroidRuntime(2555):在
createView(LayoutInflater.java:499)
03-15 23:05:01.371:错误/AndroidRuntime(2555):。。。还有7个
03-15 23:05:01.371:错误/AndroidRuntime(2555):
原因:java.lang.RuntimeException:
无法在未调用Looper.prepare()的线程内创建处理程序
03-15 23:05:01.371:ERROR/AndroidRuntime(2555):在android.os.Handler上。
(Handler.java:121)
03-15 23:05:01.371:ERROR/AndroidRuntime(2555):在android.view.SurfaceView$1。
(SurfaceView.java:107)
03-15 23:05:01.371:ERROR/AndroidRuntime(2555):在android.view.SurfaceView。
(SurfaceView.java:105)
03-15 23:05:01.371:错误/AndroidRuntime(2555):。。。还有11个

LayoutInflater用于为版面充气,因此需要执行以下操作才能获得正确的结果:

LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View layout = (View)inflater.inflate(R.layout.your_layout,null);

ListView v = (ListView)layout.findViewById(R.id.highscores);

r你在活动中加载了正确的布局?你能显示你从哪里得到充气机的代码吗?那么你在充气listview时得到了一个错误?我的错误listview上有一个空指针,我添加了充气机代码。另外,如果这有任何不同,我在我的单个类中执行此操作,并且我已经在我的活动中膨胀了一次xml singleplayer。谢谢你,现在我收到了一个不同的错误,尽管我会在我的原始帖子中为你的第二期发布,正如你从stacktrace中可以看到的,该问题可能是由该自定义视图引起的,为了解决这个问题,您可能需要在该类中发布一些代码;)它有2000多行,但当我在activityPlease中执行此操作时,它会毫无错误地膨胀。请查看single.java中1922行附近的代码。在stacktrace中:“无法在未调用Looper.prepare()的线程内创建处理程序”。错误可能由此引起,希望此帮助您什么是调用targetexception?
LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View layout = (View)inflater.inflate(R.layout.your_layout,null);

ListView v = (ListView)layout.findViewById(R.id.highscores);