Android 我可以在片段活动之外替换片段布局吗

Android 我可以在片段活动之外替换片段布局吗,android,android-layout,android-fragments,sharedpreferences,Android,Android Layout,Android Fragments,Sharedpreferences,我正在使用该应用程序,当我单击菜单按钮“收藏列表打开”时出现问题,但我希望从主要活动访问该应用程序,如图所示:如果您想从列表移动到项目详细信息,可以在适配器中传递数据以供RecyclerView使用 @Override public void onBindViewHolder(ListAdapter.MyViewHolder holder, final int position) { holder.itemView.setOnClickListener(new Vi

我正在使用该应用程序,当我单击菜单按钮“收藏列表打开”时出现问题,但我希望从主要活动访问该应用程序,如图所示:

如果您想从列表移动到项目详细信息,可以在适配器中传递数据以供RecyclerView使用

  @Override
    public void onBindViewHolder(ListAdapter.MyViewHolder holder, final int position) {

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, FavoriteActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("yourdata", yourdata);
                intent.putExtras(bundle);
                context.startActivity(intent);
            }
        });
    }
如果使用ListView,可以尝试

your_listview.setOnItemClickListener { parent, view, position, id ->   

  Intent intent = new Intent(context, FavoriteActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("yourdata", yourdata);
                intent.putExtras(bundle);
                context.startActivity(intent);
 }
收藏夹活动中
可以通过以下方式设置此数据:

String data=getIntent().getExtras().getString(“您的数据”)


我希望我的理解是正确的。

如果您想从列表移动到项目详细信息,可以在适配器中为RecyclerView传递数据

  @Override
    public void onBindViewHolder(ListAdapter.MyViewHolder holder, final int position) {

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, FavoriteActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("yourdata", yourdata);
                intent.putExtras(bundle);
                context.startActivity(intent);
            }
        });
    }
如果使用ListView,可以尝试

your_listview.setOnItemClickListener { parent, view, position, id ->   

  Intent intent = new Intent(context, FavoriteActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("yourdata", yourdata);
                intent.putExtras(bundle);
                context.startActivity(intent);
 }
收藏夹活动中
可以通过以下方式设置此数据:

String data=getIntent().getExtras().getString(“您的数据”)


我希望我理解正确。

在列表项模型中再添加一个变量并使用它。 例如:

boolean isFavorite;

当您创建所有项目时
false
,当您单击星号以列出项目时,将项目的标志设置为
true

在列表项目模型中再添加一个变量并使用它。 例如:

boolean isFavorite;

当您创建构造函数所有项目时
false
,当您单击星号以列出时,将项目的标志设置为
true
此代码用于打开favt活动,但此代码与菜单按钮用于同一活动,但我想从主活动中打开favt片段

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_favorites:

            favListFragment = new FavoriteListFragment();
            switchContent(favListFragment, FavoriteListFragment.ARG_ITEM_ID);

            return true;
    }
    return super.onOptionsItemSelected(item);
}

public void switchContent(Fragment fragment, String tag) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    while (fragmentManager.popBackStackImmediate());

    if (fragment != null) {
        FragmentTransaction transaction = fragmentManager
                .beginTransaction();
        transaction.replace(R.id.content_frame, fragment, tag);
        //Only FavoriteListFragment is added to the back stack.
        if (!(fragment instanceof ProductListFragment)) {
            transaction.addToBackStack(tag);
        }
        transaction.commit();
        contentFragment = fragment;
    }
}

这段代码我用来打开favt活动,但这与菜单按钮用于相同的活动,但我想从主活动中打开favt片段

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_favorites:

            favListFragment = new FavoriteListFragment();
            switchContent(favListFragment, FavoriteListFragment.ARG_ITEM_ID);

            return true;
    }
    return super.onOptionsItemSelected(item);
}

public void switchContent(Fragment fragment, String tag) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    while (fragmentManager.popBackStackImmediate());

    if (fragment != null) {
        FragmentTransaction transaction = fragmentManager
                .beginTransaction();
        transaction.replace(R.id.content_frame, fragment, tag);
        //Only FavoriteListFragment is added to the back stack.
        if (!(fragment instanceof ProductListFragment)) {
            transaction.addToBackStack(tag);
        }
        transaction.commit();
        contentFragment = fragment;
    }
}

你的意思是你想从主列表中打开收藏列表?是的,先生,这是我想要的你的意思是你想从主列表中打开收藏列表?是的,先生,这是我想要的对不起,先生,这不是我的问题。对不起,先生,这不是我的问题。