繁体   English   中英

Android-如何从其他类别更改按钮的颜色并更改布局的可见性?

[英]Android-how to change color on button and change visibility on layout, from other class?

当我点击一个按钮时:

1:应将按钮颜色更改为红色,将其他按钮更改为白色。

2:使布局可见,而其他布局不可见。

我的代码如下所示:


SimpleActivity

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);

        }
    });
}

}

SimpleBtnClk类:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM