重新绘制Android的活动
-
11-10-2019 - |
题
我的问题似乎很简单,但我无法在这里找到答案。
我在一个应用程序中有不同的活动。活动开始。我有一个 “主屏幕” 这显示了所有不同的可用级别,用户单击一个级别,并且该活动午餐了,当用户完成该级别时,他可以按下后按钮进入主屏幕并开始另一个级别。当按下后按钮时,我想再次重新绘制“主屏幕”,因为这次完成的级别的拇指将有所不同,以表明它已完成。
那么,如何在按下后按钮时对活动进行重新绘制呢? (我想我应该在活动中加入一些代码。(我使用共享流程来保存完成级别的状态)
主屏幕活动基本上是这样:
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maps);
SharedPreferences settings = getSharedPreferences((getResources().getString(R.string.PREFS_HI)),0);
/**/
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this,(settings.getBoolean("level_1_finished", false))));
/**/
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//Open the map which was clicked on, if there is one
if(position+1 > 1){
Toast.makeText(maps.this, "Level " + (position+1) + " is not yet available!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(maps.this, "Opening Level " + (position+1), Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent(v.getContext(), Tutorial2D.class);
startActivity(myIntent);
}
}
});
}
然后,ImageAdapter使用布尔真/错误选择图像源,即未完成的拇指或成品水平的拇指。
解决方案
首先放你 GridView
作为班级成员。然后覆盖 onResume()
您可以根据用户的工作来重新设置网格视图适配器的方法。
private GridView gridview;
@Override
protected void onResume() {
super.onResume();
gridview.setAdapter(/* your new ImageAdapter here */);
}
其他提示
你应该使用 startActivityForResult()
的方法 活动. 。基本上,您正在开始下一个活动,要求该请求的状态完成后。在完成之前,它应该调用SetResult(允许您指定用户是否完成级别)。称为它的活动(您的主屏幕)将具有 onActivityResult()
调用方法。在此方法中,您可以根据需要更新视图。
不隶属于 StackOverflow