2012-07-27 9 views
5

En el momento en que presiono un botón, la imagen es siempre el teléfono, pero lo que quiero es poder cambiar esta imagen según el botón que se presione.Elija la imagen basada en el interruptor y la caja para la notificación

por ejemplo. imageButton1 botón se pulsa establecer la imagen de notificación para el coche

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

lo siento, pero no puedo ver su pregunta/problema? ¿Puedes agregar más información? – fkerber

+0

a través de su código, verá solo la imagen del teléfono en la notificación cada vez – rajpara

+0

Todo está bien, pero ¿cuál es su pregunta? No parece ninguna pregunta? –

Respuesta

2

declaración quitar & inicialización de 'picture' de función onClick y configurarlo como variable de clase.

Para una mejor comprensión se refieren a continuación

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

En su código cada vez que btnSet obtener clic en la "foto" variable de conseguir inicializar con R.drawable.phone y luego de acuerdo para cambiar caso, ejecutar directamente "caso R .id.btnset"

creo que tienes mi punto

+0

Gracias, esto solucionó todo, todo lo que necesitaba era una variable global y mover lo que estaba configurado como – owenoliver1

+0

bienvenida ... – rajpara

Cuestiones relacionadas