数据没有添加到listView?

时间:2016-07-24 13:23:12

标签: android listview arraylist fragment

我有两个片段的活动。一个是用于输入的片段,另一个是基于输入将数据放入列表视图中。

在我的活动中,我得到了这个由输入片段调用的方法:

public void deliverOutput(int position, int[] output){
    TabFragment2 listFrag = (TabFragment2) getSupportFragmentManager().findFragmentById(R.id.listFragment);
    if(listFrag != null){
       listFrag.receiveOutput(output);
    }
    else{
        //not relevant for this post
    }
}

该方法获取list-fragment的一个实例,并调用方法receiveOutput(output)来发送由另一个片段中的method-call获得的int-array。

    public class TabFragment2 extends ListFragment {

    ArrayList<String> inputList;
    ArrayAdapter<String> adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.tab_fragment_2, container, false);

        String[] test = {"asdf", "qwer", "yxcv"};

        inputList = new ArrayList<String>(Arrays.asList(test));
        adapter = new ArrayAdapter<>(getActivity(), R.layout.list_item_standard, inputList);
        setListAdapter(adapter);
        return v;
    }

    public void receiveOutput(int[] o){
        adapter.add(getString(R.string.listitemstr, o[0], o[1], o[2]));
        Log.d("CC", "Output received.");
    }
}

这是我的listFragment代码。实际上,receiveOutput方法应该现在将数组的数据添加到listview。但即使调用了adapter.add(...),它也没有被添加到listview中。显示String []测试的数据。 我想我在上面展示的一个代码中犯了一个错误,但我不知道为什么adapter.add(...)不会将数据添加到列表中。

编辑: 我做了一些测试,看起来方法中所做的更改没有被应用,但我仍然不知道为什么。该方法正在执行中。换句话说:似乎该方法被声明为静态,但它实际上并不是。

0 个答案:

没有答案