【问题标题】:android: Error when use setAdapter in Fragment to call Activityandroid: 在 Fragment 中使用 setAdapter 调用 Activity 时出错
【发布时间】:2015-09-16 21:01:20
【问题描述】:

我正在做应用程序从数据库中获取数据并显示在 Listview 中

所有的类都必须是一个片段,所以我可以把它放在标签中

错误是:

  this.getlistdata.setAdapter(new GetAllSongs(jsonArray,this));

正是……(jsonArray,this)

完整代码。

public class GetListData extends Fragment
{
    ListView getlistdata;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.getActivity().setContentView(R.layout.activity_main2);

        this.getlistdata =  (ListView)this.getActivity().findViewById(R.id.listgetdata);

        new GetAllCustomerTask().execute(new ApiConnector());
    }

    public  void setListAdapter (JSONArray jsonArray)
    {
        this.getlistdata.setAdapter(new GetAllSongs(jsonArray,this));
    }

    private class GetAllCustomerTask extends AsyncTask<ApiConnector,Long,JSONArray>
    {
        @Override
        protected JSONArray doInBackground(ApiConnector... params)
        {
            return params[0].GetAllCustomers();
        }

        @Override
        protected void onPostExecute(JSONArray jsonArray)
        {
            setListAdapter(jsonArray);
        }
    }

错误是::

无法将 Fragment 转换为 Activity

我该如何解决?

【问题讨论】:

  • 你能发布完整的错误吗? this.getlistdata.setAdapter(new GetAllSongs(jsonArray,this)); 看起来不像是错误消息,this.getlistdata.setAdapter(new GetAllSongs(jsonArray,this)); 也不是
  • 错误是can't cast Fragment To Activity @WhiteViking

标签: android android-fragments android-activity fragment android-fragmentactivity


【解决方案1】:

GetAllSongs() 期望 Activity 作为第二个参数,但您传递的是 Fragment

以下语句应消除异常:

this.getlistdata.setAdapter(new GetAllSongs(jsonArray, getActivity()))

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多