2016-03-20 9 views
1

Diğer etkinlik bir değer gönderirken bir etkinliğin nasıl duraklatılacağını bilmem gerekiyor. Kodumda, ana etkinlik ikinci etkinliği çağırır ve ikinci etkinlik sonucu gönderir, böylece ana etkinlik ikinci etkinliğin sonucunu alana kadar beklemelidir.Bir Etkinlik başka bir etkinliğe dönene kadar nasıl duraklatılır?

public class MainActivity extends AppCompatActivity { 
public final static String key = "abc"; 
public final static String key1 = "abcd"; 
String abc; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button b1 = (Button) findViewById(R.id.button); 
    b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show(); 
      send(); 

     } 
    }); 
} 

public void send() { 
    // Toast.makeText(MainActivity.this, "jsjaskb", Toast.LENGTH_SHORT).show(); 
    // String str="this is"; 
    String[] str = {"Blue", "Green", "Purple", "Red"}; 
    Intent intent = new Intent(this, Second.class); 
    intent.putExtra(key, str); 
    startActivityForResult(intent, 1); 


    Toast.makeText(MainActivity.this, ""+abc, Toast.LENGTH_SHORT).show(); 

    // Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show(); 

} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1 && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     abc = extras.getString(key1); 
     // txtinput1.setText(str); 
     // Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show(); 
    } 
} 

}

public class Second extends AppCompatActivity { 
public final static String key="abc"; 
public final static String key1="abcd"; 

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

    Intent intent=getIntent(); 
    String[] msg=intent.getStringArrayExtra(key); 
    Toast.makeText(this, "" + msg[0], Toast.LENGTH_SHORT).show(); 

    Button b1 = (Button) findViewById(R.id.button2); 
    b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show(); 
      String str = "hello"; 
      Intent intent1 = new Intent(); 
      intent1.putExtra(key1, str); 
      setResult(RESULT_OK, intent1); 
      finish(); 


     } 
    }); 
} 

}

Şimdi problem İkinci faaliyet önce ana faaliyet baskılar str = null

+0

Tam olarak sorun nedir? Toast.makeText'inizi hareketlilikSultResult içinde taşıyabilir ve doğru değeri yazdırabilirsiniz. – Wukash

+0

zaten doğru yoldasınız. Şimdi sorun ne? –

+0

bunu startActivityForResult .... ile yapabilirsiniz. Zaten yanıtladı http://stackoverflow.com/questions/10407159/how-to-manage-startactivityforresult-on-android – jonhid

cevap

1

Hareketi "Merhaba" değeri str = atayabilir olmasıdır Yeni bir Etkinlik başlatıldıktan sonra otomatik olarak duraklatıldı. Ancak önce aradığınız onClick() yönteminden çıkmalıdır. Abc istediğiniz metni tutar. Tost null gösteriyor çünkü abc boş.

Sen yapmak zorunda bunu doğru değeri tutan

onActivityResult 

yöntemle, içeride abc dizesiyle istediğini.

+0

thnk u man !!! işe yaradı –