Как изменить экран одним нажатием в Android?

#android #tap

#Android #коснитесь

Вопрос:

У меня действительно простое приложение для Android — в значительной степени самое простое из возможных.

У меня два разных setContentView вызова. Я хочу, чтобы второй вызывался после того, как пользователь нажимает на экран. Все работает иначе.

Как мне заставить это представление появляться, когда пользователь нажимает?

Вот мой MainActivity класс:

 package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.EditText;

public class MainActivity extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        setContentView(R.layout.activity_main2);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


}
  

И вот activity_main2 :

 <LinearLayout 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:orientation="horizontal"
    android:background="@drawable/corporatesplash" >

</LinearLayout>
  

Комментарии:

1. Что делает activity_main2.xml как выглядит? И я не думаю, что ваш первый setContentView что-то делает

2. «пользователь нажимает на экран» непонятно. пожалуйста, предоставьте дополнительную информацию. что такое макет?

Ответ №1:

Итак, если я правильно понял, на вашем экране есть кнопка. Если пользователь нажимает на кнопку, вызывается соответствующее действие (SendMessage). Если пользователь нажимает на любую область экрана, кроме кнопки, вызывается другая вещь (setContentView или w / e). Это правильно?

Если да, я бы посоветовал вам создать представление, которое вы разместили бы под кнопкой, заполнив экран (например, в RelativeLayout). И добавьте к нему OnTouchListener.

Комментарии:

1. Нет, этот метод был бесполезным и пустым, я просто удалил его

2. … и что еще более важно: что бесполезно? весь подход или OnTouchListener?

Ответ №2:

вы должны создать один contentview по умолчанию, а другой

     setContentView(R.layout.activity_main);
         @Override
                    public boolean onTouch(View v, MotionEvent event) {

                        if(firstTap){

                            firstTap = false;
                            reloadclass(); 
// use any method for reload the class i recommend to use intent and reload the class 
//and also use Put string through intent and set variable firsttap and 
//check if the click is first time or not

                        }
                        else
                        {
                                firstTap = true;


                        }
                        return false;
                    }
                });