안드로이드 개발 질문/답변
(글 수 45,052)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/mainLayout">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
<LinearLayout android:layout_width="fill_parent" android:id="@+id/MenuPan" android:visibility="invisible" android:gravity="center" android:layout_height="200dp"> <TextView android:layout_width="wrap_content" android:text="Language" android:layout_height="wrap_content" android:id="@+id/LanguageMenu" android:textSize="30dp" android:layout_gravity="center_vertical" android:textColor="#00ff00"></TextView> </LinearLayout>
</LinearLayout>
제가 메뉴를 만들고 있는데요
View 와 TextView 를 이용했어요
View Touch Down 하면 TextView 가 나타나는 대요 , TouchUP 하면 사라지구요 ..
Down 한 상태에서 드래그 해서 이 TextView 에 다가가면
TextView에 대한 TouchListener를 쓰고 싶거든요 근데 안먹더라구요 ..
TextView가 맨위로 올라오지 않은 느낌이랄까..;
소스코드 한번 봐주세요
package showing.MenuItems.menuTesting01; import android.app.Activity; import android.content.Intent; import android.opengl.Visibility; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class ShowMenuItems extends Activity implements OnInitListener { int y; View defaultView, MenuPan; TextView menuItem; Intent intent; TextToSpeech tts; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); defaultView = findViewById(R.id.mainLayout); //R.layout.main의 아이디가 mainLayout 입니다. MenuPan = findViewById(R.id.MenuPan); //메뉴아이템들을 붙일 리니어레이아웃으로 만든 메뉴판입니다. menuItems= (TextView) findViewById(R.id.LanguageMenu); //TextView입니다 //액티비티에 기본적으로 붙인 mainLayout입니다 defaultView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { x =(int)event.getX(); y = (int)event.getY()-150; System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa"); MenuPan.layout(0, y, 320, y+300); System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbb"); MenuPan.setVisibility(View.VISIBLE); return true; } else if (event.getAction() == MotionEvent.ACTION_UP) { MenuPan.setVisibility(View.INVISIBLE); return true; } return false; } }); //나타난 TextView에 터치리스너를 하고 싶습니다 ㅜ menuItems.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { tts.speak("Language", TextToSpeech.QUEUE_FLUSH, null); Toast.makeText(ShowMenuItems.this, "Languge MOTION EVENT", Toast.LENGTH_SHORT).show(); return true; } else if (event.getAction() == MotionEvent.ACTION_UP) { Toast.makeText(ShowMenuItems.this, "Language_ACTION_UP", Toast.LENGTH_SHORT).show(); System.out .println("new Intent(ShowMenuItems.this,LanguageSetting.class)"); return false; } return true; } });