2016-05-02 7 views
-1

Ich arbeite an einem Wecker und diese Klasse soll schnell die Stunde und Minute auswählen und sie wird es auch zurück senden die Absicht kam aus dem ich SetForresult() aber für Irgendein Grund, wenn ich den Knopf drücke, um die Zeit einzustellen, die es die Aktivität neu erstellt, und ich muss es wieder eingeben, aber das zweite Mal tut es, was es sollte.Intent ist nicht fertig beim Aufruf von finish()

package com.bignerdranch.android.alarm; 

import android.app.AlarmManager; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TimePicker; 

public class setAlarmTimes extends AppCompatActivity { 
AlarmManager manager; 
private TimePicker myTimePicker; 
private static final String TAG = "MYTAG"; 
private static Button sendVals; 
int hour,minute; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_set_alarm_times); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    Log.i(TAG,"in ONCREATE"); 
    myTimePicker = (TimePicker) findViewById(R.id.timePicker); 
    sendVals = (Button)findViewById(R.id.setAlarmValuesButton); 

    sendVals.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent sent = new Intent(setAlarmTimes.this,setAlarmList.class); 
      hour = myTimePicker.getCurrentHour(); 
      minute = myTimePicker.getCurrentMinute(); 
      sent.putExtra("HOUR",hour); 
      sent.putExtra("MINUTE",minute); 
      setResult(setAlarmList.REQUEST_CODE, sent); 
      Log.i(TAG, "IMPORTANT VALUES _____" +hour + minute); 
      finish(); 
      Log.i(TAG,"shouldnt ovvur"); 
     } 
    }); 





    Log.i(TAG,"Hour and min is " + hour+ ":"+ minute); 




} 

} 



package com.bignerdranch.android.alarm; 

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

public class setAlarmList extends AppCompatActivity { 
private static Button addAlarm; 
private static Button removeAlarm; 
public static final int REQUEST_CODE= 1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_set_alarm_list); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    addAlarm = (Button) findViewById(R.id.myAddButton); 
    removeAlarm = (Button) findViewById(R.id.myRemoveButton); 

    addAlarm.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent getTimes = new  Intent(setAlarmList.this,setAlarmTimes.class); 
      startActivity(getTimes); 
      startActivityForResult(getTimes,REQUEST_CODE); 
     } 
    }); 


} 

} 

Antwort

1

in Ihrem Onclicklistener des Alarms (siehe unten)

addAlarm.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent getTimes = new  Intent(setAlarmList.this,setAlarmTimes.class); 
     startActivity(getTimes); // here remove it 
     startActivityForResult(getTimes,REQUEST_CODE); // here retain it 
    } 
}); 

Sie die Aktivität zweimal starten, sollten Sie startActivityForResult nur verwenden. Entfernen Sie die startActivity(getTimes)

+0

Dam i kann nicht glauben, ich sehe, dass ich didnt müssen müde sein, danke verschwendet ich eine lächerliche Menge an Zeit auf that.You eine upvote bekommen. –

+0

@K .. Sie müssen es als Antwort zu überprüfen: D –

+0

Ja zu schlecht everyones down Voting mich jetzt = (. –

0

Verwenden unten Code:

addAlarm.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
    Intent getTimes = new Intent(setAlarmList.this,setAlarmTimes.class); 
    startActivityForResult(getTimes,REQUEST_CODE); 
} 
}); 
Verwandte Themen