我有一个问题,就是通过另一个活动来设置按钮的可见性。
代码解释:
首先是
"f2"按钮用于意图"leveltwo.class",但它仍然设置为隐藏,"f2lock"是用于锁定等级的ImageView。其次,是menu.java文件。
使用以下代码来调用带有结果的
代码的功能是在
上述代码是为了从
问题是如何在case 2中使用和设置SharedPreferences?这样f2和f2lock的可见性就会被保存。
因为我已经尝试了SharedPreferences代码,但什么都没有发生,f2按钮仍然是GONE,f2lock ImageView仍然是VISIBLE。
我的意思是:
像游戏一样,当用户完成第1关时,第2关就会解锁。
但在这里,当第1关完成时,我让按钮可见。
代码解释:
首先是
menu.xml
。<Button
android:id="@+id/f1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginRight="10dp"
android:background="@drawable/button1"
android:visibility="visible" />
<ImageView
android:id="@+id/f2lock"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:src="@drawable/levellocked"
android:visibility="visible" />
<Button
android:id="@+id/f2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/button2"
android:visibility="gone" />
"f2"按钮用于意图"leveltwo.class",但它仍然设置为隐藏,"f2lock"是用于锁定等级的ImageView。其次,是menu.java文件。
public class menu extends Activity {
Button f1, f2;
ImageView f2lock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.famouslevel);
f1 =(Button)findViewById(R.id.f1);
f1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
// TODO Auto-generated method stub
Intent level1 = new Intent ();
level1.setClassName ("com.example.game", "com.example.game.levelone");
startActivityForResult (level1, 0);
}
});
}
public void onActivityResult (int requestCode, int resultCode, Intent level1){
super.onActivityResult (requestCode, resultCode, level1);
f2=(Button)findViewById(R.id.f2);
f2lock=(ImageView)findViewById(R.id.f2lock);
switch (resultCode) {
case 2: f2.setVisibility(View.VISIBLE);
f2lock.setVisibility(View.GONE);
}
f2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
// TODO Auto-generated method stub
Intent level2 = new Intent ();
level2.setClassName ("com.example.game", "com.example.game.leveltwo");
startActivityForResult (level2, 0);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.splashscreen, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
使用以下代码来调用带有结果的
levelone.java
因此,在levelone.java
中,我将代码放置如下。 public void onClick(View v){
setResult (2);
finish();
}
});
代码的功能是在
level.class
完成时,向menu.class
发送结果(2)。public void onActivityResult (int requestCode, int resultCode, Intent level1){
super.onActivityResult (requestCode, resultCode, level1);
f2=(Button)findViewById(R.id.f2);
f2lock=(ImageView)findViewById(R.id.f2lock);
switch (resultCode) {
case 2: f2.setVisibility(View.VISIBLE);
f2lock.setVisibility(View.GONE);
}
上述代码是为了从
levelone.class
接收结果(2)并执行case 2
函数。问题是如何在case 2中使用和设置SharedPreferences?这样f2和f2lock的可见性就会被保存。
因为我已经尝试了SharedPreferences代码,但什么都没有发生,f2按钮仍然是GONE,f2lock ImageView仍然是VISIBLE。
我的意思是:
像游戏一样,当用户完成第1关时,第2关就会解锁。
但在这里,当第1关完成时,我让按钮可见。