java - 以下代码没有设置小部件在另一个 Activity 中可见的功能

标签 java android button android-activity preferences

我做了一些编码,使按钮在另一个 Activity 中可见,但它仍然什么也不做,我有三个类: menu.classlevelone.classleveltwo.class 这是 menu.xml

中的以下数据
<Button
    android:id="@+id/f1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_marginRight="10dp"
    android:background="@drawable/button1" />

<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" />

<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" />

然后是menu.class中的代码

        f1 =(Button)findViewById(R.id.f1);      
        f1.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v){
           // TODO Auto-generated method stub
        Intent intent = new Intent ();
        intent.setClassName ("com.example.application", "com.example.application.levelone");
        startActivityForResult (intent, 0);              
            }             
      });   
}
    public void onActivityResult (int requestCode, int resultCode, Intent intent) {
        super.onActivityResult (requestCode, resultCode, intent);

    f2=(Button)findViewById(R.id.f2);
    f2.setEnabled(false);
    f2lock=(ImageView)findViewById(R.id.f2lock);

        switch (resultCode) {
        case 11: f2.setVisibility(View.VISIBLE);
                 f2lock.setVisibility(View.GONE);               
                            }                   

    SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);
    boolean levelTwoUnlocked = preferences.getBoolean("f2", false);

    if(levelTwoUnlocked){
        f2.setVisibility(View.VISIBLE);
        f2lock.setVisibility(View.GONE);
        }
        else {
        f2.setVisibility(View.GONE);
        f2lock.setVisibility(View.VISIBLE);
        } 


    f2.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v){
        Intent intent = new Intent ();
        intent.setClassName ("com.example.application", "com.example.application.leveltwo");
        startActivityForResult (intent, 0);              
            }             
      });       
}

levelone.class中我放入了

public void onClick(View v){
                  setResult (11);
                  finish();          
              }
           }); 

结果将发送到menu.class以使按钮可见并打开leveltwo.class

            switch (resultCode) {
            case 11: f2.setVisibility(View.VISIBLE);
                     f2lock.setVisibility(View.GONE);               
                                }

但是 menu.class 中没有任何反应,并且 f2 按钮仍然不可见

是我的代码没有功能还是首选项代码错误?

最佳答案

我刚刚注意到在你的 onActivityResult() 函数中你首先设置了可见性,然后初始化了布局中的这些变量,试试这个

public void onActivityResult (int requestCode, int resultCode, Intent intent) {
    super.onActivityResult (requestCode, resultCode, intent);    

    //First initialize these variables and then use setVisbility function
    f2=(Button)findViewById(R.id.f2);
    f2.setEnabled(false);
    f2lock=(ImageView)findViewById(R.id.f2lock);

    switch (resultCode) {
        case 11: f2.setVisibility(View.VISIBLE);
                 f2lock.setVisibility(View.GONE);               
                        }    
    //Rest of your code
}

关于java - 以下代码没有设置小部件在另一个 Activity 中可见的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967970/

相关文章:

java - 将所有实体保留在一个 EJB 模块中

android - Espresso 测试不会写入 EditText

java - 字符串格式和语言环境问题 - Android

css - 更改单个菜单项上的事件链接颜色

html - 悬停时的图标动画

java - JVM 可以内联 native 方法吗?

java - liquibase 中的自动增量

java - 如何为流数据创建 Flux/Publisher

java - 如何设置一个微调器的选定项目控制其他微调器的项目?

Java GUI Action 监听器。找出按下了哪个按钮