小编Sla*_*ava的帖子

为什么RecyclerView onBindViewHolder只调用一次?

我的代码中有一个奇怪的错误.我使用Recycler View(过去使用没有任何问题).我创建了测试ArrayList以在Recycler中显示它,但我得到了RecyclerView中唯一的第一行,之后,应用程序停止(不是崩溃)像ArrayList完成.

我的主要代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view =  inflater.inflate(R.layout.fragment_all_tab, container, false);

    Activity activity = getActivity();

    //TODO: For testing ONLY
    ArrayList<Order> orders = new ArrayList<>();
    for(int i = 0; i < 10; i++) {
        orders.add(new Order(i, i, i));
    }

    // Initialising Orders Recycler View.
    OrderAdapter orderAdapter = new OrderAdapter(activity, orders);
    RecyclerView recyclerViewOrders = (RecyclerView) view.findViewById(R.id.recylerViewAllDiners);
    recyclerViewOrders.setLayoutManager(new LinearLayoutManager(activity));
    recyclerViewOrders.setAdapter(orderAdapter);

    return view;
}
Run Code Online (Sandbox Code Playgroud)

适配器:

package com.slavafleer.tipcalculator;

import android.content.Context; …
Run Code Online (Sandbox Code Playgroud)

java android recycler-adapter android-recyclerview

9
推荐指数
3
解决办法
5897
查看次数

在重新创建()后onBackPressed不调用

问题描述:

我的应用程序有主要活动和设置活动.每次关闭设置活动后,主活动都会重新创建.

可以通过finish()在两个位置关闭主活动(应用程序退出):操作栏中的主页按钮和后退按钮(硬件或弹出栏).

Home按钮工作没有问题,Back按钮在开始时工作,但如果用户在Settings Activity中,关闭它并返回到Main Activity,onBackPressed()函数不再被调用.

如果我删除娱乐,后退按钮工作正常,就像主页按钮一样.

所以,如果有人知道为什么重新创建()弄乱Back按钮?

谢谢.

部分相关代码:

主要活动:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        // Open Settings Activity
        case R.id.menuSettings:

            Intent intent = new Intent(this, SettingsActivity.class);
            startActivityForResult(intent, REQUEST_SETTINGS);

            return true;

        // Close the App
        case android.R.id.home:

            finish();

            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode != RESULT_OK) {

        return;
    }

    switch (requestCode) {

        case REQUEST_SETTINGS:

            // Recreate activity
            recreate();

            break; …
Run Code Online (Sandbox Code Playgroud)

android back-button recreate onbackpressed

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