#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;
}
});