我的代码中有一个奇怪的错误.我使用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) 问题描述:
我的应用程序有主要活动和设置活动.每次关闭设置活动后,主活动都会重新创建.
可以通过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)