按下按钮使微调器在另一个屏幕中可见

时间:2011-06-09 01:55:01

标签: java android listener spinner

我正在尝试编写屏幕1上的onClickevent按钮 因此,在屏幕2上,旋转器可见或不可见,取决于需要。

知道屏幕1上有几个使用相同视图的按钮 或者在第二个屏幕上的小部件,我正在考虑使用一个屏幕 所有这些活动。

如果有人知道并向我解释如何解决这个问题,那就太好了。

我会附上java代码来查看它。

public class screen1 extends Activity {

    private View spinner1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.screen1);

        spinner1 = findViewById(R.id.spinner1);
        Button A = (Button) findViewById(R.id.b_A);

     // error output: Cannot instantiate the type View.OnClickListener
            A.setOnClickListener(new View.OnClickListener());
        A.setOnClickListener(mVisibleListener);
        }   

                        @Override
// error output behind the line 'public void':The method onClick(View) of type screen1 must override or implement a supertype method

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.jack.test.SCREENMENU"));

            }
            OnClickListener mVisibleListener = new OnClickListener(){
                public void onClick(View v){
                    spinner1.setVisibility(View.VISIBLE);{
        };    
                       // the rest is ok from here to down.

2 个答案:

答案 0 :(得分:1)

除了你要问的代码之外,你似乎还有一些重大故障。幸运的是,如果我理解正确,你想要的东西很容易解决:

@Override
public void onClick(DialogInterface dialog, int which)
{
    if (need_is_met)
        {
        if (spinner1.getVisibility() == View.INVISIBLE)
            view.setVisibility(View.VISIBLE);
        else
            view.setVisibility(View.INVISIBLE);
        }
}

need_is_met是一个布尔值......就我所说的“取决于需求”而言,我可以得到它

就其他代码而言,它应如下所示:

public class screen1 extends Activity
    {

    private View spinner1;

    @Override
    protected void onCreate(Bundle savedInstanceState)
        {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen1);
        boolean need_is_met = true; // you can change this or have it set based on something later if you want
        spinnerAutomerk = findViewById(R.id.spinnerAutomerk);
        button_A = (Button) findViewById(R.id.b_A);

        button_A.setOnClickListener(new View.OnClickListener()
            {
            @Override
            public void onClick(View v)
                {
                if (need_is_met)
                    {
                    if (spinnerAutomerk.getVisibility() == View.INVISIBLE)
                        spinnerAutomerk.setVisibility(View.VISIBLE);
                    else
                spinnerAutomerk.setVisibility(View.INVISIBLE);
                    }
            }
            }
        }
    }
这样的事情。我拿出了所有requestWindowFeaturewindowFlag等等,因为将它放入你的清单中更为简洁:

...
<application
    android:icon="@drawable/icon" 
    android:label="@string/app_name"
    >
  <activity
        android:name=".Screen1"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
...

最后一行,即主题位,将为您设置多个主题中的任何一个(例如深色,浅色,透明等等,只需R.style和ctrl-F {{1}并且你会看到有一个数字可供选择。类似于this他们可以杀死标题和通知栏,如果你愿意的话。 我也没有把theme设置为某种东西,因为我不知道你的其余代码是关于什么的。

答案 1 :(得分:0)

首先,如果你想让它在点击时打开并显示微调器(不确定这是否与你的意思完全相同),你需要将screen2作为另一个活动。

您应该使用意图切换到screen2的活动。如果你谷歌它,有十亿个关于如何做到这一点的例子。

您可以使用布尔值来检查是否符合某些要求:

Boolean Reqs = false;
If(req_met){
    Reqs = true;
} else {
    Reqs = false;
}

使用那种格式,然后在发送意图时检查Reqs是否为真,以查看微调器是否可见(我会使用其他意图)