2013-09-13 3 views
0

я поставил кнопку события на этот click_screenнажмите событие на фоне изображения в андроид

<TextView 
     android:id="@+id/textView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:onClick="click_screen" /> 

другой вид деятельности в .java файл (click_screen)

public void click_screen(View v) 
{ 
    Intent click_screen=new Intent(this, MainActivity.class); 
    startActivity(click_screen); 
} 

MainActivity.java

package com.amcct.amcostapp; 

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 

public class MainActivity extends Activity 
{ 

    @SuppressLint("NewApi") 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

/* @Override 
    public boolean onTouchEvent(MotionEvent event) 
    { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) 
     { 
      Intent click_screen=new Intent(this, MainActivity.class); 
      startActivity(click_screen); 
     } 

     return super.onTouchEvent(event); 
    }*/ 

    @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; 
    } 

    public void click_screen(View v) 
    { 
     Intent click_screen=new Intent(this, MainActivity.class); 
     startActivity(click_screen); 
    } 
} 

========================================================================= ======================================= 0 0 ^^ выше click_screen

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:onClick="click_screen" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".Click_Page" 
    android:background="@drawable/img_1" > 

</RelativeLayout> 

Смотреть это мое все файлы ....

+0

Это может помочь [OnClick] (http://stackoverflow.com/questions/4153517/how-exactly-does-the-androidonclick -xml-attribute-differ-from-setonclicklistene) – Manishika

+0

Я думаю, вам нужно добавить android: clickable = true, не могу подтвердить, хотя, я никогда не устанавливал clicklistener в xml –

+0

Су-Au это не работает ... –

ответ

0

Ваш код находится в MainActivity и с помощью намерений вы снова пытаетесь перейти на MainActivity.class? указать сферу деятельности, к которому вы хотите идти в течение, например:

Intent click_screen=new Intent(MainActivity.this, nextActivity.class); 
    startActivity(click_screen); 
+0

Спасибо, что он очень полезен ... –

+0

добро пожаловать. – khubaib

0

Попробуйте установить onClick для родительского вида вашего XML вместо этого. Что-то like.-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:onClick="click_screen" > 

... 

</RelativeLayout> 

Или просто переопределить onTouchEvent в вашем Activity как this.-

public boolean onTouchEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     Intent click_screen=new Intent(this, MainActivity.class); 
     startActivity(click_screen); 
    } 

    return super.onTouchEvent(event); 
} 
+0

когда я делаю это, мое приложение перестало работать :(и моя функция кодирования истинна ?? и мне нужно другое действие, когда я нажимаю на любом месте экрана –

+0

Mmh как перестали работать? Какое исключение? Вы пытались просто переопределить onTouchEvent? – ssantos

+0

ssantos Спасибо help Я не делаю никаких исключений в приложении, но когда я клик где-нибудь на экране, он перестает работать ... и я не знаю, как переопределить onTouchEvent :( –

0

Myabe вы можете попробовать этот код, я сделать textview.setClickable (истинный)

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final TextView textView = (TextView)findViewById(R.id.textView1); 
    textView.setClickable(true); 
    textView.setOnClickListener(this); 
} 

@Override 
public void onClick(View view) { 
    startActivity(new Intent(this, MainActivity.class)); 
} 
0

Вы хотите перейти к другому действию при нажатии в любом месте экрана? Тогда почему вы устанавливаете onclick в этом текстовом представлении? Установите атрибут onclick в верхнем относительном макете/Linear layout instea d установки текста.

+0

Я попробовал это на RelativeLayout. Но он не работает –

+0

set onclick/clickable to true на относительном макет ... что такое ошибка? – khubaib

+0

Я попробовал clickable = true, но он ничего не меняет, и мое приложение перестало работать, когда я нажимаю в любом месте экрана .... –

0
## Please add clickable property ## 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:text="Click Me" 
    android:clickable="true" 
    android:onClick="click_screen" /> 
Смежные вопросы