Android-适配器代码不编译

Android-适配器代码不编译,android,Android,我有一些我认为应该编译的代码,但没有: import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONObject; import com

我有一些我认为应该编译的代码,但没有:

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import com.problemio.ViewSolutionsActivity.DownloadWebPageTask;
import com.problemio.data.Discussion;
import com.problemio.data.DiscussionMessage;
import com.problemio.data.SuggestedSolution;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class TopicActivity extends Activity 
{
    ArrayAdapter<Discussion> adapter;       

    ArrayList<Discussion> discussion = new ArrayList <Discussion>( );   

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.discussion);

        // Have to display the topic, and the existing discussion, and the form field.



        Discussion d = new Discussion ();
        d.setDiscussionTopicName( "Please wait while the discussion comments load" );

        discussion.add(d);
        adapter = new ArrayAdapter<Discussion>( this,R.layout.discussion_comments, discussion);

        setListAdapter(adapter);

        ListView lv = getListView();
        lv.setTextFilterEnabled(true);
import java.io.InputStream;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.urlcoder;
导入java.util.ArrayList;
导入java.util.List;
导入org.json.JSONArray;
导入org.json.JSONObject;
导入com.problemio.ViewSolutionsActivity.downloadWebPagetTask;
导入com.problemio.data.Discussion;
导入com.problemio.data.DiscussionMessage;
导入com.problemio.data.SuggestedSolution;
导入android.app.Activity;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.preference.PreferenceManager;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
公共类主题活动扩展活动
{
阵列适配器;
ArrayList discussion=新的ArrayList();
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.discussion);
//必须显示主题、现有讨论和表单字段。
讨论d=新讨论();
d、 setDiscussionTopicName(“正在加载讨论注释,请稍候”);
讨论.添加(d);
适配器=新阵列适配器(此,R.layout.discussion\u注释,discussion);
setListAdapter(适配器);
ListView lv=getListView();
lv.setTextFilterEnabled(真);
下面有更多代码,但带有setListAdapter(adapter)的行出现以下错误:

The method setListAdapter(ArrayAdapter<Discussion>) is undefined for the type TopicActivity
类型TopicActivity的方法setListAdapter(ArrayAdapter)未定义
知道为什么吗?我实际上是从另一个类复制了这段代码,并且在那里工作得很好


谢谢!

我认为这应该有效
将您的类扩展到ListActivity
您需要使用ListActivity扩展您的活动。现在您已经

public class TopicActivity extends Activity 
换成

public class TopicActivity extends ListActivity

只能在ListActivity中使用setListAdapter()

   setListAdapter(adapter) works with
列表活动


如果版面至少有一个id为android.R.id.list

的列表视图,您是否尝试通过ListActivity扩展类?您的第二条语句不正确,setListAdapter()仅在ListActivity类中定义。它不能用于普通活动。