java如何在安卓中使用SharedReferences从PhotoView id/图像id获取值
我正在创建一个安卓应用程序,我正在根据编号显示drawable文件夹中的图像,我的活动开始显示数字1中的图像,我正在使用按钮显示下一个或上一个图像
我试图保存用户在使用共享首选项按下后退按钮时查看的图像的值。我的代码如下所示
private int currentPage = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read);
final Button btnNext = findViewById(R.id.btnNext);
final Button btnBack = findViewById(R.id.btnBack);
listOfObjects = getResources().getStringArray(R.array.object_array);
images = getResources().obtainTypedArray(R.array.object_image);
itemImage = (ImageView)findViewById(R.id.imgSpace);
final Spinner spinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,R.layout.my_spinner, listOfObjects);;
spinnerAdapter.setDropDownViewResource(R.layout.my_spinner);
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
itemImage.setImageResource(images.getResourceId(spinner.getSelectedItemPosition(), -1));
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
final ImageView img = findViewById(R.id.imgSpace);
PhotoView photoView = (PhotoView) findViewById(R.id.imgSpace);
img.setImageResource(getResources().getIdentifier("page_"+currentPage,"drawable",getPackageName()));
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(spinner.getSelectedItemPosition() < spinner.getAdapter().getCount()){
spinner.setSelection(spinner.getSelectedItemPosition()+1);
}
}
} );
}
currentPage是我想在按下后退按钮或转到任何其他活动后保存的变量,如果用户最小化应用程序,我想把它传递给main activity,以便显示resume activity的额外按钮,并显示用户在单击resume activity按钮时按下back按钮之前看到的确切图像。 我正在使用克里斯·贝恩斯的照片视图来显示图像。我知道如何在PHP中传递变量和设置它们,但是安卓对我来说是新的。任何帮助都将不胜感激
# 1 楼答案
安卓在按下手机后退按钮时会自动调用onBackPressed()。您可以手动调用它: onBackPressed()
# 2 楼答案
我不完全理解这个问题,但你可以写:
它的工作方式是在“图像”部分以文件名保存一个文件,以便在程序启动时将其取回。在这里,我们把1作为默认值,所以当你第一次启动程序时,它将取1。你应该写:
以后在程序中每次用户更改图像时。因此,它将更改首选项,并确保当您启动程序时,currentImage将采用正确的值。 在android studio中,您可以查看模拟手机的文件系统。对于首选项,您需要进入Android/data/com。你的PackageName/首选项,如果一切顺利,你应该在那里看到你的文件