2013-12-20 2 views
0

андроид/Java/затмение - У меня есть этот файл Java: (Eight.java)Кнопка не работает ява андроид

/** 
* 
*/ 
package com.apptemplate; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.hoerhager.christmas.R; 

/** 
    * 
*/ 
public class Eight extends Activity { 

    private AdView adView; 
    private Button btn81; 
    private Intent intent; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.one); 
     adView = (AdView)this.findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     adView.loadAd(adRequest); 
    } 



    private void initialiseUI() 
    { 
     btn81 = (Button)findViewById(R.id.button81); 
     btn81.setOnClickListener((OnClickListener) this); 
    } 
    @Override 
     public void onPause() { 
     adView.pause(); 
     super.onPause(); 
     } 

     @Override 
     public void onResume() { 
     super.onResume(); 
     adView.resume(); 
     } 

     @Override 
     public void onDestroy() { 
     adView.destroy(); 
     super.onDestroy(); 
     } 

     public void onClick(View v) 
     { 
      if(v==btn81) 
      { 
       intent = new Intent(this,Eighta.class); 
      } 

      startActivity(intent); 
     } 

} 

и этот XML-файл: (eight.xml)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 



    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/eight" /> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adSize="SMART_BANNER" 
     ads:adUnitId="@string/ads_unit_id" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2.41" 
     android:text="@string/text8" /> 

    <Button 
     android:id="@+id/button81" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="Preparation" /> 

</LinearLayout> 

button81 не работает, что такое ошибка? Я новичок в работе с Java. Его для маленького андроида проекта для тестирования

+0

Вы не инициализируете свою кнопку, не так ли? –

+0

вы получаете исключение? если да, укажите logcat –

ответ

0

Вы забыли позвонить вам initialiseUI функцию в onCreate:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.one); 
     adView = (AdView)this.findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     adView.loadAd(adRequest); 
     initialiseUI(); 
    } 
0

Попробуйте это:

/** 
* 
*/ 
package com.apptemplate; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.hoerhager.christmas.R; 

/** 
    * 
*/ 
public class Eight extends Activity implements OnClickListener{ 

    private AdView adView; 
    private Button btn81; 
    private Intent intent; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.one); 
     adView = (AdView)this.findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     adView.loadAd(adRequest); 
     initialiseUI(); 
    } 



    private void initialiseUI() 
    { 
     btn81 = (Button)findViewById(R.id.button81); 
     btn81.setOnClickListener(this); 
    } 
    @Override 
     public void onPause() { 
     adView.pause(); 
     super.onPause(); 
     } 

     @Override 
     public void onResume() { 
     super.onResume(); 
     adView.resume(); 
     } 

     @Override 
     public void onDestroy() { 
     adView.destroy(); 
     super.onDestroy(); 
     } 

     public void onClick(View v) 
     { 
      if(v.getId()==R.id.button81) 
      { 
       intent = new Intent(this,Eighta.class); 
      } 

      startActivity(intent); 
     } 

} 

ИЗМЕНЕНИЯ:

  • сейчас реализует onclickListener
  • Вызов initialiseUI в «OnCreate» метод
  • initlialiseUI удален бросок в onClickListener как теперь реализует onClickListener
  • OnClick теперь использует идентификатор для проверки РАВЕНСТВО
0

Я думаю, что вы забыли это осуществить, попробуйте, как показано ниже :

общественный класс Восемь расширяет активность орудий OnClickListener {

Также ваш initialiseUI метод не называется. Попробуйте вместо этого:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.one); 

    // call the method here 
    initialiseUI(); 

} 

Наконец, измените setOnClickListener как:

btn81.setOnClickListener(this); 
// this "attach" your button to the Activity which 
// implements the onClickListener method. 

И потом, ваш OnClick метод является неправильным, см this answer, у вас есть два способа сделать это:

@Override 
public void onClick(final View v) { 
    if(v.getId() == R.id.button){ // do something } 
} 

// OR 

@Override 
public void onClick(final View v) { 
    switch(v.getId()){ 
     case R.id.button: 
       // do something 
       break; 
     case ... 
    } 
} 

Надеюсь, это поможет.

+0

. Вы можете видеть, что он уже импортирован как import android.view.View.OnClickListener; – Piyush

+0

Вы правы, я пропустил это! Благодарю. – Fllo

1

Вы пропустили назвать свой initialiseUI() функцию в OnCreate() метод:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.one); 
    adView = (AdView)this.findViewById(R.id.adView); 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    adView.loadAd(adRequest); 
    initialiseUI(); 
} 
0

Поместите это в OnCreate()

btn81 = (Button)findViewById(R.id.button81); 
     btn81.setOnClickListener((OnClickListener) this); 
0

вам убежище» t initialiseUI() в onCreate(), а также реализовать Click interface. Это должно делать свое дело.

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