如何修复 TextView 在新 Activity 上呈现为空白

How to fix TextView being rendered blank on new Activity

我试图在单击 RecyclerView 内的 CardView 后启动另一个 activity。新的 activity 在单击 RecyclerView 内的任何项目后呈现(它进行转换并更改标题 TextView),但它不会在布局上显示 CardView 内的任何 TextView。

OnClick 方法正在设置为接口并在第一个 Activity 中实现。

这是我的第一个 activity。我在这里从 SQLite 数据库加载数据,但显示其中的代码与问题无关。

public class MainActivity extends AppCompatActivity implements RecipeAdapterMain.OnCardListener {

    private TextView tv;


    ArrayList<RecipeObject> recipes = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RecyclerView rv = findViewById(R.id.recipeListMain);
        LinearLayoutManager llm = new LinearLayoutManager(this);
        rv.setLayoutManager(llm);

        RecipeAdapterMain adapter = new RecipeAdapterMain(recipes, this);
        rv.setAdapter(adapter);

        tv = findViewById(R.id.title);

    }
@Override
    public void onCardClick(int position) {
        Intent intent = new Intent(this, RecipeActivity.class);
        startActivity(intent);
    }
}

这是我的适配器。

public class RecipeAdapterMain extends RecyclerView.Adapter<RecipeAdapterMain.RecipeListViewHolder> {

    RecyclerView mRecyclerView;
    ArrayList<RecipeObject> recipeList;
    private OnCardListener mOnCardListener;

    public RecipeAdapterMain(Context context, ArrayList<RecipeObject> recipeList, OnCardListener onCardListener) {
        this.mOnCardListener = onCardListener;
        this.recipeList = recipeList;
    }



    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        mRecyclerView = recyclerView;
        super.onAttachedToRecyclerView(recyclerView);
    }

    @Override
    public RecipeListViewHolder onCreateViewHolder(ViewGroup parent, int i) {
        View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_recipe_main, parent, false);

        RecipeListViewHolder rcv = new RecipeListViewHolder(layoutView, mOnCardListener);
        return rcv;
    }

    @Override
    public void onBindViewHolder(@NonNull RecipeListViewHolder holder, int position) {
        holder.mName.setText(recipeList.get(position).getName());
    }

    @Override
    public int getItemCount(){
        return recipeList.size();
    }

    public class RecipeListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        public TextView mName;

        OnCardListener onCardListener;
        public RecipeListViewHolder(final View view, OnCardListener onCardListener) {
            super(view);
            mName = view.findViewById(R.id.textViewTitle);
            this.onCardListener = onCardListener;
            view.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            onCardListener.onCardClick(getAdapterPosition());
        }


    }
    public interface OnCardListener {
        void onCardClick(int position);
    }
}

我的第二个 activity:

public class RecipeActivity extends AppCompatActivity {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.layout_recipe);
}
}

这是第二个 activity 的布局。 (layout_recipe):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textViewName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="This is a test"
                android:textColor="#1A1A1A"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/textViewIngr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="This is a test"
                android:textColor="#1A1A1A"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/textViewDire"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="This is a test"
                android:textColor="#1A1A1A"
                android:textSize="18sp" />
        </LinearLayout>

    </androidx.cardview.widget.CardView>

</LinearLayout>

这是第一个 activity (activity_main) 的布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recipeListMain"
        android:scrollbars="vertical">

    </androidx.recyclerview.widget.RecyclerView>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:backgroundTint="@color/colorAccent"
        android:layout_gravity="end|bottom"
        android:layout_margin="16dp"
        android:layout_marginBottom="16dp"
        android:contentDescription="@string/submit"
        android:src="@drawable/ic_add_black_24dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:onClick="openActivityCreate"/>



</androidx.coordinatorlayout.widget.CoordinatorLayout>

通过单击 MainActivity 上的卡片,我希望用它的 TextView 呈现第二个 activity(这是一个测试),但它呈现的是空白页面。

尝试在第二个 activity

上从 onCreate 中删除 @Nullable PersistableBundle persistentState