2016-01-07 6 views
3

, поэтому я немного новичок в разработке Android.Метод не вызывается при запуске

Я читал this, так как моя ссылка на кнопку с кликом, с некоторыми изменениями в моем xml. Проблема, которая у меня есть, когда я пытаюсь щелкнуть ее, ничего не происходит. На моем телефоне и в студии Android нет сообщений об ошибках. Интересно, чего не хватает или есть что-то, чего я не знаю, что я должен знать?

Вот мой Java на моем проекте

public class test_button extends Activity { 
Button button ; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test_button); 
    click(); 
} 
public void click(){ 
    button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

         Intent browserIntent = 
           new Intent(Intent.ACTION_VIEW, Uri.parse("http://reddit.com")); 
         startActivity(browserIntent); 
     } 
    }); 
} 

и это мой XML

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

<include layout="@layout/layout_toolbar" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_width="match_parent" 
    android:id="@+id/toolbar"/> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    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" 
    android:id="@+id/profile_page_activity_body" 
    android:layout_below="@id/toolbar" 
    > 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="60sp" 
     android:text="Do things" 
     android:textColor="#ffffff" 
     android:textSize="40sp" 
     android:id="@+id/button" 
     android:textAllCaps="false" 
     android:background="@drawable/btn_greenbox" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="51dp" /> 


</RelativeLayout> 

Edit1: на OnClick(), я сделал попробовать Тост, но это был подобный результат , ничего не произошло.

Edit2: есть щелчок анимации на кнопку каждый раз, когда я нажимаю его

+0

Как вы это используете? В эмуляторе? На вашем устройстве? –

+0

Не уверен, но измените андроид: id = "@ + id/button", вместо этого, чтобы установить id как кнопку, используйте некоторые другие, такие как btn_do_things или что-то, что вы хотите дать, но не кнопку. В .java, т. Е. Кнопка вашего класса активности в порядке. Также вы можете рассказать точную строку импорта для OnClickListener? –

+0

@JoshuaCarmody \t на моем устройстве. Я пробовал на двух устройствах, у обоих есть аналогичный результат – FreezingFlame

ответ

0

вызова намерения, как это может в вашей ссылке есть проблема:

в клик: -

**Intent i = new Intent(Intent.ACTION_VIEW, 
      Uri.parse("https://www.reddit.com/")); 
    startActivity(i);** 

Просто Помещенный https://www.reddit.com/ вместо http://www.reddit.com/

+0

, меняя его на https, ничего не делает. – FreezingFlame

+0

Ссылка на этот URL: - http://www.javatpoint.com/android-intent-tutorial – InsaneCat

+0

В приведенной выше ссылке просто получить текст из текста редактирования. в вашем случае вы можете напрямую передать URL в намерение. надеюсь, что это сработает для вас. – InsaneCat

0

Как насчет установки щелчка слушателя как:

public class TestButton extends Activity implements View.OnClickListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button btn = (Button) findViewById(R.id.button); 
     btn.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 

     // Intent code here; 
    } 
} 
0

Установите OnClick listenter внутри onCreate вместо этого метода и попробовать.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test_button); 
    button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

         Intent browserIntent = 
           new Intent(Intent.ACTION_VIEW, Uri.parse("http://reddit.com")); 
         startActivity(browserIntent); 
     } 
    }); 
} 

Также test_button не является хорошим именем для класса. Измените его на TestButton. (Переименовать с помощью рефакторинга [shift + f6], чтобы вы не получили справочные ошибки)

Смежные вопросы