我正在尝试编写屏幕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.
答案 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);
}
}
}
}
}
这样的事情。我拿出了所有requestWindowFeature
,windowFlag
等等,因为将它放入你的清单中更为简洁:
...
<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是否为真,以查看微调器是否可见(我会使用其他意图)