2016-06-20 2 views
0

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

Intent biodata = new Intent(mainActivity.this, profile.class); 

, но это не работает, так что я пытался искать что-то еще, и кто-то сказал, чтобы использовать v.getContext() вместо внесения .... это

он работает на моей другой странице, но он не работает на этой странице?

mainActivity.java

package skripsi.garden; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 

public class mainActivity extends AppCompatActivity { 

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

    public ImageButton buttonBio; 

    public void init(){ 
     buttonBio= (ImageButton)findViewById(R.id.buttonBio); 
     buttonBio.setOnClickListener(new View.OnClickListener() { 
             @Override 
             public void onClick(View v) { 
              Intent biodata = new  Intent(v.getContext(), profile.class); 

              startActivity(biodata); 
             } 
            } 


     ); 
    } 

    public ImageButton buttonList; 

    public void tombollist(){ 
     buttonList=(ImageButton)findViewById(R.id.buttonList); 
     buttonList.setOnClickListener(new View.OnClickListener() { 
              @Override 
              public void onClick(View v) { 
               Intent listTaman = new Intent(v.getContext(), gardenlist.class); 

               startActivity(listTaman); 
              } 
             } 


     ); 
    } 

    public ImageButton buttonWeather; 

    public void tombolcuaca(){ 
     buttonWeather=(ImageButton)findViewById(R.id.buttonWeather); 
     buttonWeather.setOnClickListener(new View.OnClickListener() { 
              @Override 
              public void onClick(View v) { 
               Intent cuaca = new Intent(v.getContext(), weather.class); 

               startActivity(cuaca); 
              } 
             } 
     ); 
    } 
} 

и это XML activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@drawable/foliagemain" 
    tools:context="skripsi.garden.mainActivity"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView3" 
     android:src="@drawable/selamatdatang" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttonBio" 
     android:src="@drawable/buttonbiodata" 
     android:layout_above="@+id/buttonList" 
     android:layout_alignRight="@+id/buttonWeather" 
     android:layout_alignEnd="@+id/buttonWeather" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttonList" 
     android:src="@drawable/buttondaftartaman" 
     android:layout_above="@+id/buttonHelp" 
     android:layout_alignLeft="@+id/buttonHelp" 
     android:layout_alignStart="@+id/buttonHelp" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttonHelp" 
     android:src="@drawable/buttonhelp" 
     android:layout_above="@+id/buttonWeather" 
     android:layout_alignLeft="@+id/buttonBio" 
     android:layout_alignStart="@+id/buttonBio" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttonWeather" 
     android:src="@drawable/buttoncuaca" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" /> 



</RelativeLayout> 

ответ

1

Положите ваши кнопки в вашем OnCreate метод. Им не нужно быть по-своему.

public class mainActivity extends AppCompatActivity { 

    public ImageButton buttonBio; 
    public ImageButton buttonList; 
    public ImageButton buttonWeather; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     buttonBio= (ImageButton) findViewById(R.id.buttonBio); 
     buttonBio.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent biodata = new Intent(mainActivity.this, profile.class); 
       startActivity(biodata); 
      } 
     }); 

     buttonList=(ImageButton)findViewById(R.id.buttonList); 
     buttonList.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent listTaman = new Intent(mainActivity.this, gardenlist.class); 
       startActivity(listTaman); 
      } 
     }); 

     buttonWeather=(ImageButton)findViewById(R.id.buttonWeather); 
     buttonWeather.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent cuaca = new Intent(mainActivity.this, weather.class); 
       startActivity(cuaca); 
      } 
     }); 
    } 
} 
+0

он дал мне этот журнал /Users/lilies/AndroidStudioProjects/Garden/app/src/main/java/skripsi/garden/mainActivity.java Ошибка: (59, 1) ошибка: класс, интерфейс или перечисление ожидается Ошибка: выполнение выполнено для задачи ': app: compileDebugJavaWithJavac'. > Ошибка компиляции; см. вывод ошибки компилятора. – omghelpz

+0

Переформатировал его для вас и добавил один отсутствующий кронштейн. Если он не будет компилироваться, вы сможете пройти через код и посмотреть, отсутствует ли скобка. – Jay

0

Вы могли бы просто назвать ваши методы init(), tombollist() и tombolcuaca() в onCreate методе вашей деятельности после установки макета.

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     init(); 
     tombollist(); 
     tombolcuaca() 
    } 

Это инициализирует кнопку, чтобы сделать действие написанного внутри onClick.

Если методы не вызывают, кнопка не будет инициализирована, и, следовательно, щелчок не будет работать.

Вы также можете использовать android:clickable="true" в своих изображениях, а затем назначить функцию щелчка init() кнопке в вашем макете xml.

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttonBio" 
     android:src="@drawable/buttonbiodata" 
     android:layout_above="@+id/buttonList" 
     android:layout_alignRight="@+id/buttonWeather" 
     android:layout_alignEnd="@+id/buttonWeather" 
     android:clickable="true" 
     android:onClick="init"/> 

Тогда вам не нужно будет инициализировать кнопки в вашей деятельности. При нажатии кнопки будет вызываться метод.

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