2012-07-27 10 views
5

Nel momento in cui si preme un tasto l'immagine è sempre al telefono, ma quello che voglio è essere in grado di cambiare questa immagine a seconda di quale tasto viene premuto.Scegli immagine basata su switch e caso per notifica

es. pulsante viene premuto imageButton1 imposta l'immagine notifica alla macchina

NotificationManager nm; 
static final int uniqueID = 101; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button stat = (Button) findViewById(R.id.btnSet); 
    stat.setOnClickListener(this); 
    ImageButton img1 = (ImageButton) findViewById(R.id.imageButton1); 
    img1.setOnClickListener(this); 
    ImageButton img2 = (ImageButton) findViewById(R.id.imageButton2); 
    img2.setOnClickListener(this); 
    ImageButton img3 = (ImageButton) findViewById(R.id.imageButton3); 
    img3.setOnClickListener(this); 
    ImageButton img4 = (ImageButton) findViewById(R.id.imageButton4); 
    img4.setOnClickListener(this); 
    ImageButton img5 = (ImageButton) findViewById(R.id.imageButton5); 
    img5.setOnClickListener(this); 
    nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    nm.cancel(uniqueID); 
} 

@SuppressWarnings("deprecation") 
@Override 
public void onClick(View v) { 
    int picture = R.drawable.phone; 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.imageButton1: 
     // do something 
     picture = (R.drawable.car); 
     break; 
    case R.id.imageButton2: 
     // do something else 
     picture = (R.drawable.clock); 
     break; 
    case R.id.imageButton3: 
     // do something else 
     picture = (R.drawable.globe); 
     break; 
    case R.id.imageButton4: 
     // do something else 
     picture = (R.drawable.little_tv); 
     break; 
    case R.id.imageButton5: 
     // do something else 
     //setImageResource(R.drawable.phone); 
     break; 
    case R.id.btnSet: 
    // do something else 
     EditText etT = (EditText) findViewById(R.id.etTitle); 
     EditText etB = (EditText) findViewById(R.id.etBody); 
     Intent intent = new Intent(this, MainActivity.class); 
     PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); 
     String setTitle = etT.getText().toString(); 
     String setBody = etB.getText().toString(); 
     String body = setBody; 
     String title = setTitle; 
     Notification n = new Notification(picture, body, System.currentTimeMillis()); 
     n.setLatestEventInfo(this, title, body, pi); 
     n.defaults = Notification.DEFAULT_VIBRATE; 
     nm.notify(uniqueID, n); 
     finish(); 
    break; 
    } 
} 

}

+2

mi dispiace, ma non riesco a vedere la tua domanda/problema? Puoi aggiungere ulteriori informazioni? – fkerber

+0

attraverso il tuo codice vedrai solo l'immagine del telefono nella notifica ogni volta – rajpara

+0

Tutto va bene, ma qual è la tua domanda? Non mi sembra alcuna domanda? –

risposta

2

dichiarazione rimuovi & inizializzazione 'picture' da onClick funzione e impostarla come variabile di classe.

Per una migliore comprensione si riferiscono sotto

NotificationManager nm; 
static final int uniqueID = 101; 
int picture; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    // Add below line here 
    picture = R.drawable.phone; 

    ...... All your code 

} 

@SuppressWarnings("deprecation") 
@Override 
public void onClick(View v) { 
    // Remove below line 
    // int picture = R.drawable.phone; 

    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.imageButton1: 
     // do something 
     picture = (R.drawable.car); 
     break; 
    case R.id.imageButton2: 
     // do something else 
     picture = (R.drawable.clock); 
     break; 
    case R.id.imageButton3: 
     // do something else 
     picture = (R.drawable.globe); 
     break; 
    case R.id.imageButton4: 
     // do something else 
     picture = (R.drawable.little_tv); 
     break; 
    case R.id.imageButton5: 
     // do something else 
     //setImageResource(R.drawable.phone); 
     break; 
    case R.id.btnSet: 
    // do something else 
     EditText etT = (EditText) findViewById(R.id.etTitle); 
     EditText etB = (EditText) findViewById(R.id.etBody); 
     Intent intent = new Intent(this, MainActivity.class); 
     PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); 
     String setTitle = etT.getText().toString(); 
     String setBody = etB.getText().toString(); 
     String body = setBody; 
     String title = setTitle; 
     Notification n = new Notification(picture, body, System.currentTimeMillis()); 
     n.setLatestEventInfo(this, title, body, pi); 
     n.defaults = Notification.DEFAULT_VIBRATE; 
     nm.notify(uniqueID, n); 
     finish(); 
    break; 
    } 
} 

Nel codice ogni volta che btnSet ottenere cliccare la variabile "immagine" ottenere inizializzare con R.drawable.phone e poi secondo per passare caso direttamente esecuzione "caso R .id.btnset"

penso che hai il mio punto

+0

Grazie a ciò è stato risolto tutto ciò che serviva da una variabile globale e spostato ciò che era impostato come – owenoliver1

+0

... – rajpara

Problemi correlati