2012-02-21 34 views
6

Tất cả mọi thứ hoạt động tốt, TRỪ rằng hoạt động này mang lại cho resultCode = -1Tại sao resultCode = -1 ở đây sau StartActivityForResult?

public class SetTimeDialog extends Activity{ 

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


    Button bUseTime = (Button) findViewById(R.id.buttonUseTime_settime); 
    bUseTime.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      Intent resultIntent = new Intent(this, SetTimeDialog.class); 
      setResult(Activity.RESULT_OK, resultIntent); 
      finish(); 
     } 
    }); 

Nó được gọi là từ đây trong MainActivity:

TableLayout timeTable = (TableLayout)findViewById(R.id.timeTable_writepos); 
    timeTable.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      Intent settimedialogIntent = new Intent(getApplicationContext(), SetTimeDialog.class); 
      startActivityForResult(settimedialogIntent, SETTIMEDIALOG_REQCODE); // See onActivityResult() 
      return false; 
     } 
    }); 

Và trong phương pháp onActivityResult của tôi bây giờ tôi không làm gì nhưng kiểm tra giá trị của resultCode. (Tôi đã loại bỏ tất cả các mã khác để tìm hiểu những gì là sai).

Trả lời

16

Bạn biết rằng RESULT_OK có giá trị -1?

+2

Vâng, đó chỉ là phản xạ của tôi để xem xét giá trị -1 của hằng số là dấu hiệu của một cái gì đó sai. Chúc ngủ ngon! – Tombola

+0

Bạn biết đấy, thật buồn cười, tôi có phản ứng giống hệt nhau khi tôi thấy -1 được trả lại. Tôi nghĩ rằng nó phải làm với nền Flex/AS3 của tôi vì đó thường là giá trị của những thứ nhất định như độ dài của bộ kết quả vv ... khi chúng 'trống' –

5

RESULT_OK là -1 và RESULT_CANCELED là 0. Không có gì sai.

+1

: D Đó là lý do tại sao rất khó để tìm thấy những gì sai! Thời gian để có được giấc ngủ som có ​​lẽ, cảm ơn ... – Tombola

Các vấn đề liên quan