Я пытаюсь сделать два текстовых изображения появляться и исчезать одним и тем же кликом, а затем на следующем клике vica versa появляются и исчезают. Я прочитал несколько сообщений на этом сайте, Make Textview Visible by Pressing a Button и Changing the visibility of a textview in a listview, но решения в этих примерах не работают для меня. Однако я заимствовал некоторые из их идей.Changong visibilty/invisibiloty TextView Использование метода onClick
package com.mycompany.screenchangeapplication;
import android.app.*;
import android.graphics.drawable.ColorDrawable;
import android.os.*;
import android.view.*;
import android.widget.*;
public class ScreenActivity extends Activity {
public RelativeLayout container;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
container = (RelativeLayout) findViewById(R.id.ScreenActivity);
container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
changeScreen(v);
}
});
}
public void changeScreen(View v) {
ColorDrawable cd = (ColorDrawable) this.container.getBackground();
TextView ON = (TextView) findViewById(R.id.ON);
TextView OFF = (TextView) findViewById(R.id.OFF);
if (cd != null && cd.getColor() == getResources().getColor(R.color.WHITE)) {
container.setBackgroundColor(getResources().getColor(R.color.BLACK));
OFF.setVisibility(View.VISIBLE);
ON.setVisibility(View.INVISIBLE);
} else {
container.setBackgroundColor(getResources().getColor(R.color.WHITE));
OFF.setVisibility(View.INVISIBLE);
ON.setVisibility(View.VISIBLE);
}
}
}
и
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/ScreenActivity"
android:clickable="true"
tools:context=".ScreenActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="ON"
android:id="@+id/ON"
android:visibility="visible"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textSize="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="OFF"
android:id="@+id/OFF"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textSize="150dp"
android:textColor="#ffffff"
android:visibility="invisible" />
</RelativeLayout>
Когда я положил приложение в эмуляторе он выходит из строя, так что что-то ужасно неправильно.
Я не уверен, как View v следует передать onClick и to changeScreen. Я надеюсь, что View, переданный onClick, также будет передан changeScreen, но я не уверен, как именно это будет работать.
В Android Studio весь текст кажется прекрасным (его не было).
Что ошибка, вы получаете? –
Сбой приложения. Ошибка настолько массивная, что я не могу опубликовать ее здесь. Проблема, по-видимому, исходит из настройки видимости, и View – Permian
может отправить ваш логарифм здесь или сообщить, какую ошибку вы получаете – Umair