相关疑难解决方法(0)

ViewPager PagerAdapter未更新视图

我正在使用兼容性库中的ViewPager.我已经巧妙地让它显示了几个我可以翻阅的视图.

但是,我很难弄清楚如何使用一组新视图更新ViewPager.

我已经试过各种事情就像调用mAdapter.notifyDataSetChanged(),mViewPager.invalidate()即使每次都创建我想用一个新的数据列表中的一个全新的适配器.

没有任何帮助,文本视图与原始数据保持不变.

更新: 我做了一个小测试项目,我几乎能够更新视图.我将粘贴下面的课程.

然而,似乎没有更新的是第二个视图,"B"仍然存在,按下更新按钮后应显示"Y".

public class ViewPagerBugActivity extends Activity {

    private ViewPager myViewPager;
    private List<String> data;

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

        data = new ArrayList<String>();
        data.add("A");
        data.add("B");
        data.add("C");

        myViewPager = (ViewPager) findViewById(R.id.my_view_pager);
        myViewPager.setAdapter(new MyViewPagerAdapter(this, data));

        Button updateButton = (Button) findViewById(R.id.update_button);
        updateButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                updateViewPager();
            }
        });
    }

    private void updateViewPager() {
        data.clear();
        data.add("X");
        data.add("Y");
        data.add("Z");
        myViewPager.getAdapter().notifyDataSetChanged();
    }

    private class MyViewPagerAdapter extends PagerAdapter {

        private …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

581
推荐指数
14
解决办法
35万
查看次数

广播收到两次

我正在使用本地广播让我的服务知道AsyncTask已完成其工作但我有一个小问题:广播只发送一次(它是由一个仅在应用程序启动时调用的函数创建的)但我收到两次.

简化代码:

@Override
protected void onPostExecute(HttpResponse result) {
    LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getBaseContext());
    localBroadcastManager.sendBroadcast(new Intent(getString(R.string.bc_CONNECTED)));
}
Run Code Online (Sandbox Code Playgroud)

在服务中:

private BroadcastReceiver connectedBroadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(getString(R.string.app_tag), "broadcast received !!");
    }
};

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    LocalBroadcastManager.getInstance(this).registerReceiver(connectedBroadcastReceiver, new IntentFilter(getString(R.string.bc_CONNECTED)));
    return START_STICKY;
}
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这种奇怪的行为呢?

service android broadcastreceiver

14
推荐指数
2
解决办法
9351
查看次数

多个活动的一个片段

我们总是听说过使用一个活动的多个片段.可能相反吗?我很好奇.我们可以为多个活动使用相同的片段.请举一个例子.

android fragment android-activity

8
推荐指数
1
解决办法
4945
查看次数

如何在 MVVM 结构中的 RecyclerView 项上设置 OnClickListener

我有一个采用 MVVM 结构的应用程序。我在同一个活动中有不同的片段。每个片段都有自己的 ViewModel,所有数据均从 REST API 检索。

在FragmentA中,有一个RecyclerView列出了X个类实例。我想在 RecyclerView 上设置 OnClickListener,并且当在 RecyclerView 中单击某个项目时,我想将相关的 X 对象传递给 FragmentB。我怎样才能实现这个目标?

android onclicklistener android-recyclerview android-mvvm

6
推荐指数
2
解决办法
7926
查看次数

如何将数据从片段发送到活动

在我的应用程序中,我在一个活动中有两个片段。在其中一个片段中,我有数据,例如:

String name = "Transporter";
Run Code Online (Sandbox Code Playgroud)

我想将此名称发送到容器活动。我该怎么做?请帮我。

android android-fragments android-activity

1
推荐指数
1
解决办法
9654
查看次数