我有一个Activity与三个片段可以打电话给他们一个,乙和Ç.Fragment 一个被称为在活动onCreate().
FragmentA fragA = new FragmentA();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.activity2_layout, fragA, "A");
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
当按下某些按钮时,会被片段B或C替换,并且FragmentTransaction会调用addToBackStack().
FragmentB fragB = new FragmentB(); //or C
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.activity2_layout, fragB, "B"); //or C
transaction.addToBackStack("B"); //or C
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
但是让我说我连续三次打电话给Fragment B,我怎么能阻止它自己堆叠呢?同时我希望这是可能的:B调用> C调用> B调用 - 但是当我尝试返回时我希望B只打开一次(C < B)而不是(B < C < B) .所以基本上删除第一个backStack与新的.
android fragment android-fragments back-stack fragment-backstack
我将一些JPEG图像保存到手机存储器中,我想将使用的毕加索加载到ImageView中.我遇到了麻烦,无论我尝试什么,我只是无法加载图像,ImageView最终都是空白.
以下是我保存和检索图像的方法:
private void saveImage(Context context, String name, Bitmap bitmap){
name=name+".JPG";
FileOutputStream out;
try {
out = context.openFileOutput(name, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Bitmap getSavedImage(Context context, String name){
name=name+".JPG";
try{
FileInputStream fis = context.openFileInput(name);
Bitmap bitmap = BitmapFactory.decodeStream(fis);
fis.close();
return bitmap;
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,返回的图像是位图,如何使用picasso将其加载到imageview中?我知道我可以将位图加载到这样的图像中:
imageView.setImageBitmap(getSavedImage(this,user.username+"_Profile"));
但我有一个使用毕加索的课程使用图片(用户个人资料照片),所以我需要用毕加索加载它.