2014-08-15 3 views
0

Я довольно новичок в программировании на андроиде, и я пытаюсь создать простую замену/запуск стартового экрана.Кнопки с изображениями не работают

Приложение работает отлично, и плейер представления работает, но по какой-то причине, когда я нажимаю на любую из кнопок изображения, ничего не происходит.

Это мой основной класс активности java.

package com.dntmdp.matthewhuckel.simplephonelauncher; 

import android.app.Activity; 
import android.content.Intent; 
import android.support.v4.view.ViewPager; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageButton; 


public class MainActivity extends Activity { 

    Button phone; 

    Button sms; 

    Button people; 

    Button camera; 

    Button chrome; 

    Button gallery; 

    Button mail; 

    Button calendar; 

    Button facebook; 

    Button map; 

    Button clock; 

    Button setting; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.swipe1); 

     ImageButton phone = (ImageButton) findViewById(R.id.imageButton); 

     phone.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.phone"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton sms = (ImageButton) findViewById(R.id.imageButton2); 

     sms.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.conversations"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton people = (ImageButton) findViewById(R.id.imageButton3); 

     people.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.android.socialphonebook"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton camera = (ImageButton) findViewById(R.id.imageButton4); 

     camera.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.android.camera"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     setContentView(R.layout.swipe2); 

     ImageButton chrome = (ImageButton) findViewById(R.id.imageButton5); 

     chrome.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.chrome"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton gallery = (ImageButton) findViewById(R.id.imageButton6); 

     gallery.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.album"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton mail = (ImageButton) findViewById(R.id.imageButton7); 

     mail.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.email"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton calendar = (ImageButton) findViewById(R.id.imageButton8); 

     calendar.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.calendar"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton facebook = (ImageButton) findViewById(R.id.imageButton9); 

     facebook.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.facebook.katana"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton map = (ImageButton) findViewById(R.id.imageButton10); 

     map.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.apps.maps"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     setContentView(R.layout.swipe3); 

     ImageButton clock = (ImageButton) findViewById(R.id.imageButton11); 

     clock.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.organizer"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     ImageButton setting = (ImageButton) findViewById(R.id.imageButton12); 

     setting.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.settings"); 

       startActivity(LaunchIntent); 
      } 
     }); 

     setContentView(R.layout.activity_main); 

     MyPagerAdapter adapter = new MyPagerAdapter(); 
     ViewPager myPager = (ViewPager) findViewById(R.id.viewpager_layout); 
     myPager.setAdapter(adapter); 
     myPager.setCurrentItem(0); 
    } 


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

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

спасибо.

+1

PLS проходит через какой-либо учебник или читает документы. У вас есть 'setContentView' более одного раза в том же самом действии, что совсем нехорошо. Каждая активность имеет свой собственный ui и жизненный цикл. Вы устанавливаете макет для операции с помощью 'setContentView' – Raghunandan

ответ

-1
imageButton = (ImageButton) findViewById(R.id.imageButton1); 

imageButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

    Toast.makeText(MyAndroidAppActivity.this, 
        "ImageButton is clicked!", Toast.LENGTH_SHORT).show(); 

    } 

}); 

Попробуйте выполнить над кодом, который работает. Вам не нужно использовать

new View.OnClickListener(){ 
    @Override 
     public void onClick(View arg0) { 
    } 
} 
+0

' new View.OnClickListener() 'is ViewClickListner. Его интерфейс и вы реализуете интерфейс. Вам не нужно использовать. Почему это??. прочитать http://developer.android.com/reference/android/view/View.OnClickListener.html – Raghunandan

+0

phone.setOnClickListener (новый OnClickListener() { @Override общественного недействительными OnClick (View Вид) { Намерение LaunchIntent = getPackageManager () .getLaunchIntentForPackage («com.android.phone»); startActivity (LaunchIntent); } }); – manitaz

+2

Что не так с кодом op? – Raghunandan

-1

Проверьте ниже код, он работал для меня, поэтому я предполагаю, что это будет работать с вами !:

public class MainActivity extends Activity implements OnClickListener { 
    ImageView imv_Load; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     imv_Load = (ImageView) findViewById(R.id.imv_Click); 
     imv_Load.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
     case R.id.imv_Click: 
      Toast.makeText(getApplicationContext(), "Button Clikced", 
        Toast.LENGTH_SHORT).show(); 
      break; 

     default: 
      break; 
     } 
    } 
} 
2

всякий раз, когда вы переключаете ваш макет, используя setContentView вы должны повторно -declare кнопку изображения снова, она будет работать только в том случае, если она доступна в новом layout, поскольку он не будет работать, если его не внутри этого макета. так как вы используете программный пуск с использованием переключателя layout, этот способ не подходит, пожалуйста, используйте вместо этого Fragment.
P.S Ваш код выше для запуска click в порядке, но, как я уже упоминал выше, они не будут работать, если вы переключились на новый макет, не повторно объявив, что imageButton снова под setContentView.

+0

Не возражаете ли вы опубликовать пример кнопки с обновленным изображением в режиме установленного содержимого? – MATT101296

+0

его очевидный tho, просто скопируйте свой предыдущий код клика вместе с объявлением id, но все же я не рекомендую этот способ. – k0sh

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