Кнопка Android Activity onClick () Слушатель работает медленно - PullRequest
0 голосов
/ 04 ноября 2018

В моем событии кнопка «Активность» работает медленно, в этом действии все кнопки работают нормально, но они реагируют на небольшую задержку около 2/3 секунды. Я делаю здесь, когда я нажимаю кнопку, это меняет весь фон кнопки. Я не могу понять, в чем проблема, пожалуйста, помогите мне!

Файл активности

public class TaskBarView extends Activity implements OnClickListener {

private int time = 0;
private Button btn_fiveSec,btn_tenSec,btn_fifteenSec,btn_thirtySec,btn_oneMin,btn_fiveMin,btn_tenMin,btn_thirtyMin;
private TextView tv_viewTime;
Handler myHandler;
boolean startPrank;

public void onBackPressed() {
    finish();
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    myHandler = new Handler();

    final Runnable mMyRunnable = new Runnable() {
        @Override
        public void run(){

            if(Build.VERSION.SDK_INT >= 23) {
                if (!Settings.canDrawOverlays(TaskBarView.this)) {
                    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
                    startActivityForResult(intent, 1234);
                } else {
                    playSound();
                    Intent intent = new Intent(TaskBarView.this, CrackScreen.class);
                    startService(intent);
                    finish();
                }
            } else{
                playSound();
                Intent intent = new Intent(TaskBarView.this, CrackScreen.class);
                startService(intent);
                finish();
            }
        }
    };

    Button btn_startPrank = findViewById(R.id.btn_startPrank);
    btn_startPrank.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            startPrank = true;

            showToast(startPrank);

            int de = time * 1000;
            myHandler.postDelayed(mMyRunnable, de);
        }
    });

    btn_fiveSec = findViewById(R.id.btn_fiveSec);
    btn_fiveSec.setOnClickListener(this);

    btn_tenSec = findViewById(R.id.btn_tenSec);
    btn_tenSec.setOnClickListener(this);

    btn_fifteenSec = findViewById(R.id.btn_fifteenSec);
    btn_fifteenSec.setOnClickListener(this);

    btn_thirtySec = findViewById(R.id.btn_thirtySec);
    btn_thirtySec.setOnClickListener(this);

    btn_oneMin = findViewById(R.id.btn_oneMin);
    btn_oneMin.setOnClickListener(this);

    btn_fiveMin = findViewById(R.id.btn_fiveMin);
    btn_fiveMin.setOnClickListener(this);

    btn_tenMin = findViewById(R.id.btn_tenMin);
    btn_tenMin.setOnClickListener(this);

    btn_thirtyMin = findViewById(R.id.btn_thirtyMin);
    btn_thirtyMin.setOnClickListener(this);


    Button btn_stopPrank = findViewById(R.id.btn_stopPrank);
    btn_stopPrank.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            myHandler.removeCallbacks(mMyRunnable);
            startPrank = false;
            Intent intent = new Intent(TaskBarView.this, CrackScreen.class);
            stopService(intent);
            tv_viewTime.setText("Cracked Screen stopped");

            showToast(startPrank);
        }
    });

    tv_viewTime = findViewById(R.id.tv_viewTime);
    tv_viewTime.setText("Cracked Screen starts with in 0 second");

}

private void playSound(){
    MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.glass_break);
    mp.start();
}

private void showToast(boolean prank){
    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));

    TextView tv_toastMessage = layout.findViewById(R.id.tv_toastMessage);
    RelativeLayout relativeLayout = layout.findViewById(R.id.re_toastBackground);

    if(startPrank){
        relativeLayout.setBackgroundResource(R.drawable.notification_start);
        tv_toastMessage.setText("Start Pranking");
        tv_toastMessage.setTextColor(Color.parseColor("#0AB1E9"));
    } else if(!startPrank){
        relativeLayout.setBackgroundResource(R.drawable.notification_stop);
        tv_toastMessage.setText("Stop Pranking");
        tv_toastMessage.setTextColor(Color.parseColor("#F83668"));
    }else {
        relativeLayout.setBackgroundColor(Color.parseColor("#6651D4"));
        tv_toastMessage.setText("Just Fun");
    }

    Toast toast = new Toast(getApplicationContext());
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.CENTER,0,0);
    toast.setView(layout);
    toast.show();
}


@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.btn_fiveSec:
            time = 5;

            btn_fiveSec.setBackgroundResource(R.drawable.time_select);
            btn_fiveSec.setTextColor(Color.WHITE);
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 5 second");

            break;

        case R.id.btn_tenSec:
            time = 10;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time_select);
            btn_tenSec.setTextColor(Color.WHITE);
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 10 second");

            break;

        case R.id.btn_fifteenSec:
            time = 15;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time_select);
            btn_fifteenSec.setTextColor(Color.WHITE);
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 15 second");

            break;

        case R.id.btn_thirtySec:
            time = 30;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time_select);
            btn_thirtySec.setTextColor(Color.WHITE);
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 30 second");

            break;

        case R.id.btn_oneMin:
            time = 60;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time_select);
            btn_oneMin.setTextColor(Color.WHITE);
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 1 Minute");

            break;

        case R.id.btn_fiveMin:
            time = 300;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time_select);
            btn_fiveMin.setTextColor(Color.WHITE);
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 5 Minute");

            break;

        case R.id.btn_tenMin:
            time = 600;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time_select);
            btn_tenMin.setTextColor(Color.WHITE);
            btn_thirtyMin.setBackgroundResource(R.drawable.time);
            btn_thirtyMin.setTextColor(Color.parseColor("#6651D4"));
            tv_viewTime.setText("Cracked Screen starts with in 10 Minute");

            break;

        case R.id.btn_thirtyMin:
            time = 1800;

            btn_fiveSec.setBackgroundResource(R.drawable.time);
            btn_fiveSec.setTextColor(Color.parseColor("#6651D4"));
            btn_tenSec.setBackgroundResource(R.drawable.time);
            btn_tenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_fifteenSec.setBackgroundResource(R.drawable.time);
            btn_fifteenSec.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtySec.setBackgroundResource(R.drawable.time);
            btn_thirtySec.setTextColor(Color.parseColor("#6651D4"));
            btn_oneMin.setBackgroundResource(R.drawable.time);
            btn_oneMin.setTextColor(Color.parseColor("#6651D4"));
            btn_fiveMin.setBackgroundResource(R.drawable.time);
            btn_fiveMin.setTextColor(Color.parseColor("#6651D4"));
            btn_tenMin.setBackgroundResource(R.drawable.time);
            btn_tenMin.setTextColor(Color.parseColor("#6651D4"));
            btn_thirtyMin.setBackgroundResource(R.drawable.time_select);
            btn_thirtyMin.setTextColor(Color.WHITE);
            tv_viewTime.setText("Cracked Screen starts with in 30 Minute");

            break;

    }
}

}

XML-файл

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg">

<RelativeLayout
    android:id="@+id/prank"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true">

<RelativeLayout
    android:id="@+id/rel_1"
    android:layout_width="match_parent"
    android:layout_height="278dp"
    android:background="@drawable/bg_white">

    <TextView
        android:id="@+id/tv_setTime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:gravity="center"
        android:text="@string/set_time"
        android:textColor="#6651d4"
        android:textSize="25sp" />

    <RelativeLayout
        android:id="@+id/rl_btnSec"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_setTime"
        android:gravity="center"
        android:layout_centerInParent="true">

        <Button
            android:id="@+id/btn_fiveSec"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:background="@drawable/time"
            android:text="@string/fiveSecond"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"/>

        <Button
            android:id="@+id/btn_tenSec"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:layout_marginLeft="5sp"
            android:background="@drawable/time"
            android:layout_toEndOf="@+id/btn_fiveSec"
            android:layout_toRightOf="@+id/btn_fiveSec"
            android:text="@string/tenSecond"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"
            android:layout_marginStart="5sp" />

        <Button
            android:id="@+id/btn_fifteenSec"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:background="@drawable/time"
            android:layout_marginLeft="5sp"
            android:layout_toEndOf="@+id/btn_tenSec"
            android:layout_toRightOf="@+id/btn_tenSec"
            android:text="@string/fifteenSecond"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"
            android:layout_marginStart="5sp" />

        <Button
            android:id="@+id/btn_thirtySec"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:layout_marginLeft="5sp"
            android:background="@drawable/time"
            android:layout_toEndOf="@+id/btn_fifteenSec"
            android:layout_toRightOf="@+id/btn_fifteenSec"
            android:text="@string/thirtySecond"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"
            android:layout_marginStart="5sp" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_btnMin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rl_btnSec"
        android:gravity="center"
        android:layout_centerInParent="true">

        <Button
            android:id="@+id/btn_oneMin"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:background="@drawable/time"
            android:text="@string/oneMinute"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"/>

        <Button
            android:id="@+id/btn_fiveMin"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:layout_marginLeft="5sp"
            android:background="@drawable/time"
            android:layout_toEndOf="@+id/btn_oneMin"
            android:layout_toRightOf="@+id/btn_oneMin"
            android:layout_marginStart="5sp"
            android:text="@string/fiveMinute"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"/>

        <Button
            android:id="@+id/btn_tenMin"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:layout_marginLeft="5sp"
            android:background="@drawable/time"
            android:layout_toEndOf="@+id/btn_fiveMin"
            android:layout_toRightOf="@+id/btn_fiveMin"
            android:layout_marginStart="5sp"
            android:text="@string/tenMinute"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"/>

        <Button
            android:id="@+id/btn_thirtyMin"
            android:layout_width="65sp"
            android:layout_height="65sp"
            android:layout_marginTop="10sp"
            android:layout_marginLeft="5sp"
            android:background="@drawable/time"
            android:layout_toEndOf="@+id/btn_tenMin"
            android:layout_toRightOf="@+id/btn_tenMin"
            android:layout_marginStart="5sp"
            android:text="@string/thirtyMinute"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textColor="#6651d4"
            android:paddingBottom="15sp"/>

    </RelativeLayout>

    <TextView
        android:id="@+id/tv_viewTime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rl_btnMin"
        android:layout_marginTop="10sp"
        android:gravity="center"
        android:textColor="#6651d4"
        android:textSize="15sp" />

</RelativeLayout>

<Button
    android:id="@+id/btn_startPrank"
    android:layout_width="200sp"
    android:layout_height="60sp"
    android:layout_below="@+id/rel_1"
    android:text="@string/start_pranking"
    android:textColor="@android:color/white"
    android:layout_centerHorizontal="true"
    android:background="@drawable/start"/>

<Button
    android:id="@+id/btn_stopPrank"
    android:layout_width="200sp"
    android:layout_height="60sp"
    android:layout_below="@+id/btn_startPrank"
    android:text="@string/stop_pranking"
    android:textColor="@android:color/white"
    android:layout_centerHorizontal="true"
    android:background="@drawable/off"/>

</RelativeLayout>

Я использую тему здесь. Любые предложения считают большой помощью. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...