我知道之前在SO中提出过类似的问题,但遗憾的是,没有一个问题符合我的目的。
我在活动类中有一个按钮,我想在另一个类中提供它的功能。
以下是我的HomeActivity代码:
// Tile Button
tileButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TileButton tileView = new TileButton();
tileView.tile();
}
});
这里是TileButton.java类代码:
public class TileButton {
HomeActivity homeActivity = new HomeActivity();
View view = homeActivity.hometabView;
public void tile(){
if(view.isShown()){
view.setVisibility(View.INVISIBLE);
}else{
view.setVisibility(View.VISIBLE);
}
}
}
现在,当我按下平铺按钮时,会抛出空指针异常。下面是LogCat条目。
10-04 10:32:07.833: E/AndroidRuntime(5330): java.lang.NullPointerException
我该如何解决这个问题?请帮忙
答案 0 :(得分:4)
更改:
public class TileButton {
public void tile(View view){
if(view.isShown()){
view.setVisibility(View.INVISIBLE);
}else{
view.setVisibility(View.VISIBLE);
}
}
}
// Tile Button
tileButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TileButton tileView = new TileButton();
tileView.tile(v);// you can pass any view from here
}
});
答案 1 :(得分:0)
如果您希望在两个活动中都有相同的操作,请在其中一个活动中创建一个公共方法,然后只需调用两个按钮上的方法。但是你无法控制甚至不在屏幕上的活动的可见性。