Android 使用onClick方法更改TextView的可见性/不可见性
我试图使两个文本视图在同一次单击时出现和消失,然后在下一次单击时vica versa出现和消失。我在这个网站上读过一些帖子,但是这些例子中的解决方案对我来说并不适用。然而,我借用了他们的一些想法Android 使用onClick方法更改TextView的可见性/不可见性,android,xml,android-layout,android-activity,Android,Xml,Android Layout,Android Activity,我试图使两个文本视图在同一次单击时出现和消失,然后在下一次单击时vica versa出现和消失。我在这个网站上读过一些帖子,但是这些例子中的解决方案对我来说并不适用。然而,我借用了他们的一些想法 package com.mycompany.screenchangeapplication; import android.app.*; import android.graphics.drawable.ColorDrawable; import android.os.*
package com.mycompany.screenchangeapplication;
import android.app.*;
import android.graphics.drawable.ColorDrawable;
import android.os.*;
import android.view.*;
import android.widget.*;
public class ScreenActivity extends Activity {
public RelativeLayout container;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
container = (RelativeLayout) findViewById(R.id.ScreenActivity);
container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
changeScreen(v);
}
});
}
public void changeScreen(View v) {
ColorDrawable cd = (ColorDrawable) this.container.getBackground();
TextView ON = (TextView) findViewById(R.id.ON);
TextView OFF = (TextView) findViewById(R.id.OFF);
if (cd != null && cd.getColor() == getResources().getColor(R.color.WHITE)) {
container.setBackgroundColor(getResources().getColor(R.color.BLACK));
OFF.setVisibility(View.VISIBLE);
ON.setVisibility(View.INVISIBLE);
} else {
container.setBackgroundColor(getResources().getColor(R.color.WHITE));
OFF.setVisibility(View.INVISIBLE);
ON.setVisibility(View.VISIBLE);
}
}
}
及
当我将应用程序放入模拟器时,它会崩溃,因此出现了严重错误
我不确定视图v应该如何传递给onClick和changeScreen。我希望传递给onClick的视图也能传递给changeScreen,但我不确定这到底是如何工作的
在Android Studio中,所有的文本似乎都很好(尽管不是这样) 步骤1)首先,您将color.xml文件添加到values文件夹中。(您可以对color使用任何名称)
步骤2)在color.xml中这样使用:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="White">#FFFFFF</color>
<!-- White-->
<color name="Black">#000000 </color>
<!-- BLACK -->
</resources>
出现了什么错误?一个正在崩溃的应用程序。这个错误太大了,我无法在这里发布。问题似乎源于设置可见性和视图。请在此处发布您的logcat,或者告诉您得到了什么错误,最后告诉您得到了什么类型的异常/@Darkie我已经在上面列出了logcat的一些错误。这个错误太大了,我无法把它全部放进去。我不知道为什么在changeScreen()步骤1)和2)中,你已经把白色和黑色换成了圆形。步骤3)是完全相同的条白色和黑色是交换轮??这代码完全为我运行。因为默认背景为白色,所以我将切换黑白颜色。对不起,您是说此代码在IDE中适用,并且符合要求,可以在模拟器中运行吗?请尽量避免将代码作为答案转储,并尝试解释其作用和原因。对于没有相关编码经验的人来说,您的代码可能并不明显。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="White">#FFFFFF</color>
<!-- White-->
<color name="Black">#000000 </color>
<!-- BLACK -->
</resources>
public void changeScreen(View v) {
ColorDrawable cd = (ColorDrawable) this.container.getBackground();
TextView ON = (TextView) findViewById(R.id.ON);
TextView OFF = (TextView) findViewById(R.id.OFF);
if (cd != null && cd.getColor() == getResources().getColor(R.color.Black)) {
container.setBackgroundColor(getResources().getColor(R.color.White));
OFF.setVisibility(View.INVISIBLE);
ON.setVisibility(View.VISIBLE);
} else {
container.setBackgroundColor(getResources().getColor(R.color.Black));
OFF.setVisibility(View.VISIBLE);
ON.setVisibility(View.INVISIBLE);
}
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
textview.setVisibility(textview.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
}
});