を使用して
TextView txt;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
txt = (TextView) findViewById(R.id.textView1);
txt.setVisibility(View.VISIBLE);
}
public void toggleVisibility(View view){
RelativeLayout layout = new RelativeLayout(this);
String a = getString(txt.getVisibility());
if(a.equals("GONE")){
txt.setVisibility(View.VISIBLE);
layout.addView(txt);
}
else{
txt.setVisibility(View.GONE);
layout.removeView(txt);
}
this.setContentView(layout);
}
XMLファイルには、私は手順を説明するのにインラインで答えを追加しました。それがあなたのニーズに合っているかどうかを見てください。
あなたが説明するために、何が必要な場合は、私が
TextView txt;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
// 1 - Here you associated the layout with your new textview. Means that you now hold a reference
// to your "txt" textview and that you have set it to be VISIBLE
txt = (TextView) findViewById(R.id.textView1);
txt.setVisibility(View.VISIBLE);
}
// 2 - you pass the argument view, but you dont really use it, so you can remove the paremeter
public void toggleVisibility(View view){
// 3 - You dont need the new RelativeLayout. Since you already got the reference to the textview
// and since the TextView is already part of your layout, you can just call methods on it without having to remove and add it again
// RelativeLayout layout = new RelativeLayout(this);
// 4 - Dont get visibility from a String like you did
// String a = getString(txt.getVisibility());
// So, instead of doing :
/*
if(a.equals("GONE")){
txt.setVisibility(View.VISIBLE);
layout.addView(txt);
}
else{
txt.setVisibility(View.GONE);
layout.removeView(txt);
}
*/
// You can just get the Visibility of a View using getVisibility() by doing the following :
if(txt.getVisiblity == View.VISIBLE) {
txt.setVisibility(View.GONE);
} else {
txt.setVisibility(View.VISIBLE);
}
// 5 - The setContentView method is generally meant to attach the Activity's view to the Activity, so you dont need/cant use it here
// this.setContentView(layout);
}
あなた 'toggleVisibility()'メソッドは 'View'パラメータを必要とするを教えてください。 http://stackoverflow.com/questions/22927123/crossfading-2-views-using-a-button-in-android –
Plzはクラッシュログを投稿します –
@MikeM。残念ながら、ボタンをクリックするとまだクラッシュしています。 – iamLinker