gpt4 book ai didi

java - fragment 未显示在 Mainactivity 中,在我的 Activity fragment 内容中仅在我单击工具栏时显示

转载 作者:行者123 更新时间:2023-11-29 06:52:09 25 4
gpt4 key购买 nike

要转到 fragment 1,我需要获取 fragment 2 和下一个 fragment 1。我的代码有什么问题。

这是我的 fragment

public class TodaysmemeFragement extends Fragment {


private RecyclerView recyclerView;
private DatabaseReference databaseReference;

private FloatingActionButton sharebutton;




@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {




return inflater.inflate(R.layout.fragment_todaysmeme,container,false);
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Meme,MemeViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Meme, MemeViewHolder>(
Meme.class,
R.layout.meme_row,
MemeViewHolder.class,
databaseReference
) {
@Override
protected void populateViewHolder(MemeViewHolder viewHolder, final Meme model, final int position) {
viewHolder.setTag(model.getTag());
viewHolder.setDesc(model.getDesc());
viewHolder.setImage(getActivity(),model.getImage());

final String imageurl = model.getImage();

View v = viewHolder.getmViews();

FloatingActionButton f = (FloatingActionButton) v.findViewById(R.id.sharebutton);

f.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


URL url = null;
Bitmap image = null;
try {
url = new URL(imageurl);
} catch (MalformedURLException e) {
e.printStackTrace();
}



try {
image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, model.getDesc());
Uri screenshotUri = null;
String path = null;
try {
path = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), image, "", null);
screenshotUri = Uri.parse(path);
} catch (Exception e) {
Log.d(e.getLocalizedMessage(),"dfsf");
}


intent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
intent.setType("image/*");
startActivity(Intent.createChooser(intent, "Share image via..."));

}

});
}
};

recyclerView.setAdapter(firebaseRecyclerAdapter);

}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Today's Meme");

sharebutton = (FloatingActionButton) view.findViewById(R.id.sharebutton);

databaseReference = FirebaseDatabase.getInstance().getReference("Today");
recyclerView = (RecyclerView)view.findViewById(R.id.meme_list);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));


}


public static class MemeViewHolder extends RecyclerView.ViewHolder{
View mView;
public MemeViewHolder(View itemView)
{
super(itemView);
mView = itemView;
}

public void setTag(String tag)
{
TextView post_tag = (TextView)mView.findViewById(R.id.post_tag);
post_tag.setText(tag);
}
public void setDesc(String desc)
{
TextView post_desc = (TextView)mView.findViewById(R.id.post_desc);
post_desc.setText(desc);
}
public void setImage(Context context,String image) {
ImageView imageView = (ImageView) mView.findViewById(R.id.post_image);
Picasso.with(context).load(image).into(imageView);

}
public View getmViews()
{
return this.mView;
}




}
}

这是我的主 Activity

<android>
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

DatabaseReference databaseReference;
FirebaseAuth firebaseAuth;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

Fragment fragment;
fragment = new TodaysmemeFragement();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_main, fragment)
.commit();




Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser() == null)
{
finish();
startActivity(new Intent(getApplicationContext(),LoginSignupActivity.class));
}








DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}

xml没有问题。但是 fragment 中的某些东西会替换。

最佳答案

添加FragmentTransaction开始交易

 Fragment fragment;
fragment = new TodaysmemeFragement();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);

ft.replace(R.id.main_content, fragment);
ft.commit();

关于java - fragment 未显示在 Mainactivity 中,在我的 Activity fragment 内容中仅在我单击工具栏时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com