当我单击按钮时:
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和编程的新手。
答案 0 :(得分:0)
首先,您需要在第二个类中传递关于您的活动的引用,因此您可以将其添加到参数或传递给类构造函数,然后通过引用可以更改按钮。
例如带参数的样子:
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的引用。
希望这会有所帮助。