java - MainActivity 中的 setListAdapter

标签 java android

嗨,我正在尝试让我的 ListView 在我的 MainActivity 中使用 json。我的 onPostExecute(string result) 方法 出现错误。它给我以下错误:“MainActivity.getTweets 类型的方法 setListAdapter(CustomAdapter) 未定义”。我有以下内容:

MainActivity.java

public class Main Activity extends Activity {
    ArrayList<TweetDetailClass> tweets = new ArrayList<TweetDetailClass>();

    protected void onCreate(Bundle savedInstanceState) { .. }

    public boolean onCreateOptionsMenu(Menu menu) { .. }

    public void searchTwitter(View view){
        ...
        new GetTweets().execute(searchURL);
    }

    public class GetTweets extends AsyncTask<String, Void, String>{
        protected String doInBackground(String... twitterURL){ .. }
        protected void onPostExecute(String result) {
             setListAdapter(new CustomAdapter(MainActivity.this, R.layout.listview, tweets));
        }
    }  
}

自定义适配器构造函数

CustomAdapter(Context c, int textView, ArrayList<TweetDetailClass> data){
    //_data = data;
    //_c = c;
    super(c, textView, data);
    this._data = data;
}

感谢您的帮助!我是初学者,因此我们将不胜感激!

最佳答案

setListAdapter() 仅当您的 Activity 扩展 ListActivity 时才能使用,并且我认为您的 xml 布局必须包含 ListView id 为“@android:id/list”的对象。

或者,如果您的 Activity 扩展 Activity,您应该将适配器设置为:

yourListView.setAdapter(new CustomAdapter(MainActivity.this, R.layout.listview, tweets));

如果有帮助请告诉我!

关于java - MainActivity 中的 setListAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328581/

相关文章:

java - 在 Android 上将项目添加到适配器时出现 ConcurrentModificationException

android - Android 中的 PendingIntent.FLAG_UPDATE_CURRENT 和 0 有什么不同?

java - 无法将 BOOLEAN 列添加到我的 Derby 数据库中的表中

android - Dalvik 类加载器之谜

javascript - 错误: getApplication() has protected access in ReactNativeHost

java - Google App Engine - 带有调度程序 Servlet 的 Blob 存储服务

java - 通知声音无穷无尽,永不停息

java - ListView 不使用 Firebase 查询滚动 "equalTo"

java - 无法在 Eclipse 中使用 gradle 运行 cucumber 功能文件。我收到 "Error: Could not find or load main class cucumber.api.cli.Main"错误

java - 无法在 Try-Resource JAVA SE7 中重新初始化 FileOutputStream