2011-12-21 23 views
8

मैं एक साधारण कार्य OnActivityResult का उपयोग कर रहा हूं, लेकिन यह मुझे वांछित परिणाम नहीं लौटा रहा है।OnActivityResult काम नहीं कर रहा है (एंड्रॉइड)

कृपया मेरा कोड देखें और मुझे बताएं कि मैं कहां गलत कर रहा हूं।

public void OnClickFunction(View view) 
{ 
    Intent intent = new Intent(getApplicationContext(), Second.class); 
    startActivityForResult(intent, RESULT_OK); 

///  My actions. . . 
}  

इस तरह तो द्वितीय श्रेणी में, मैं निर्धारित किया है परिणाम:

Button.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      ValueOne = EditText.getText().toString().trim(); 
      if (ValueOne.equals(String.valueOf(Answer))) 
      { 
       Toast.makeText(getApplicationContext(), "Correct Answer", 0).show(); 
       Second.this.setResult(RESULT_OK, null); 
       Second.this.finish(); 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), "Wrong Answer", 0).show(); 
      } 
     } 
    });  

अब first.class से वापस आ रहा है, जहां आशय बुलाया गया था से:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
//  if (requestCode == RESULT_OK) 
//  { 
     if (resultCode == RESULT_OK) 
     { 
          ///// MyActions. . . 
     } 
//  } 
}  

डीबगर इस फ़ंक्शन को डिबग नहीं कर रहा है, इसलिए वांछित परिणाम नहीं आ रहे हैं।
जहां मैं गलत कर रहा हूं ??

+0

क्या आप वाकई अपनी गतिविधियों में एक ही काम कर रहे हैं कर रहे हैं? एक नज़र डालें: http://stackoverflow.com/questions/4013586/onactivityresult-does-not-works-in-android – Ash

+0

क्या आप सुनिश्चित हैं कि यदि स्थिति सही है और यह सही उत्तर संदेश प्रदर्शन टोस्ट है? और आप setResult (RESULT_OK, null) के बजाय setResult (RESULT_OK) का भी उपयोग कर सकते हैं; – Pratik

+0

बटन.सेटऑनक्लिक लिस्टनर ???? –

उत्तर

3

आप दूसरी गतिविधि को नष्ट किया है। वापस बटन दबाकर देखें। मैं onActivityResult में सभी लॉग संदेश देखने के लिए सक्षम हूँ

पहले गतिविधि

public class FirstActivity extends Activity { 
/** Called when the activity is first created. */ 
int result = 100; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Intent i = new Intent(this,SecondActivity.class); 
    startActivityForResult(i, result); 
} 
@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent data) { 
    Log.i("H", "RequestCode:" + requestCode); 
    Log.i("H", "ResultCode:" + resultCode); 
} 
} 

SecondActivity

public class SecondActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    setResult(RESULT_OK); 
    Log.i("S","Exiting Second Activity"); 
} 
} 
1
स्रोत कक्षा में

: गंतव्य कक्षा में

int activity=1; 
Intent i=new Intent(Sourceclass.this,destination.class); 
startActivityForResult(i,activity); 

:

Intent i=new Intent(); 
     setResult(RESULT_OK,i); 
    finish(); 

स्रोत कक्षा की OnActivityResult में:

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (resultCode == RESULT_OK) 
    { 
        if(requestCode==1) 
      { 
       Log.e("check","check"); 

      } 
    } 

} 
+1

@Ahihi ... काम करने वाले आदमी नहीं .. – Noman

+0

क्या आपने मेरे कोड का उपयोग किया है क्योंकि यह @Noman – Abhi

+2

@abhi .. हाँ मैंने आपके उत्तर के अनुसार अपना कोड संपादित किया है लेकिन समस्या अभी भी – Noman

संबंधित मुद्दे