[英]Android-how to change color on button and change visibility on layout, from other class?
当我点击一个按钮时:
1:应将按钮颜色更改为红色,将其他按钮更改为白色。
2:使布局可见,而其他布局不可见。
我的代码如下所示:
public class SimpleActivity extends AppCompatActivity {
protected Button arealBtn;
protected LinearLayout arealLayout;
private SimpleBtnClk simpleBtnClk;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple);
simpleBtnClk = new SimpleBtnClk();
arealBtn = (Button) findViewById(R.id.arealbtn);
arealLayout = (LinearLayout) findViewById(R.id.arealLayout);
arealBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
simpleBtnClk.ArealBtn();
//arealLayout.setVisibility(View.VISIBLE);
//arealBtn.setTextColor(Color.RED);
//lengthLayout.setVisibility(View.INVISIBLE);
//lengthBtn.setTextColor(Color.WHITE);
}
});
}
}
package simpleapps.com.converterv1;
import android.graphics.Color;
import android.view.View;
public class SimpleBtnClk extends SimpleActivity{
public void ArealBtn(){
arealLayout.setVisibility(View.VISIBLE);
arealBtn.setTextColor(Color.RED);
lengthLayout.setVisibility(View.INVISIBLE);
lengthBtn.setTextColor(Color.WHITE);
}
现在,如果我删除
simpleBtnClk.ArealBtn();
并删除上的评论标记
arealLayout.setVisibility(View.VISIBLE);
arealBtn.setTextColor(Color.RED);
lengthLayout.setVisibility(View.INVISIBLE);
lengthBtn.setTextColor(Color.WHITE);
那么它工作正常,但是当我尝试使用代码simpleBtnClk.ArealBtn(); 该应用程序停止工作。
我看不到问题,一直盯着它看了4天,但我看不到它。
-编辑:
1也许我应该说我是java,android和编程的新手。
首先,您需要在第二个类中传递对您的活动的引用,因此您可以将其添加到参数或将其传递给类构造函数,然后通过引用可以更改按钮。
例如带有参数,它看起来像:
public void ArealBtn(SimpleAcvitvity activity){
activity.arealLayout.setVisibility(View.VISIBLE);
activity.arealBtn.setTextColor(Color.RED);
activity.lengthLayout.setVisibility(View.INVISIBLE);
activity.lengthBtn.setTextColor(Color.WHITE);
}
在您的第一个活动中,将字段从受保护变为公开
由此:
protected Button arealBtn;
protected LinearLayout arealLayout;
对此:
public Button arealBtn;
public LinearLayout arealLayout;
而且您还忘记创建对lengthLayout和lengthBtn的引用。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.