无法从片段调用Adapter方法

时间:2015-02-21 09:30:22

标签: java android listview android-fragments android-adapter

我正在使用带标签的片段。 我有两个片段: AddTask.javaAddedTask.java

我有一个Adaper课程 Adapter.java

public class Adapter extends BaseAdapter {
Context context;
List<Reminder_Database> lists;
TextView title, date,time,note,date_edit,time_edit;
EditText title_edit,note_edit;
AddedTask addedTask;
int ids;
public Adapter(Context context, List<Reminder_Database> list, AddedTask addedTask) {
    // TODO Auto-generated constructor stub

    this.context=context;
    this.lists=list;
    this.addedTask=addedTask;
}

上面提到的代码是适配器。现在我想在我的第一个片段AddTask.java中列出多个列表项,但它返回null

我试过像

Adapter adapter=new Adapter(context,lists,addedTask);
adapter.getcount();

但它会返回null

片段AddedTask的上下文可能正在返回null

请不要在AddTaskAddedTask之间感到困惑。

我希望在getCount()中调用AddTask适配器,否则我希望AddedTask对开放活动有价值。

2 个答案:

答案 0 :(得分:2)

不应该像

那样
Adapter adapter=new Adapter(getActivity(),list,addedTask);
adapter.getcount();

其中listList<Reminder_Database>类型的对象。

AddedTaskAddTask获取价值:

public class MainActivity extends Activity{

    public int count;

}

首先在AddedTask

中设置值
public class AddedTask extends Fragment{

    ....
    ((MainActivity)getActivity()).count = adapter.getcount();

}

要在另一个Fragment中获取它:

public class AddedTask extends Fragment{

    ....
    int count = ((MainActivity)getActivity()).count;

}

试试这个。这将有效。

答案 1 :(得分:0)

首先,您的参数不匹配

这 - &gt;列表不起作用, 片段上下文应该来自活动。

 getActivity().getApplicationContext()

使用一些列表对象: -

Adapter adapter=new Adapter(getActivity().getApplicationContext(),list,addedTask);