2013-12-17 4 views
-1

Я использую startActivityForResult, но у меня нет данных, почему? с этим кодом I обедом активностьAndroid startActivityForResult

conto = (Button) findViewById(R.id.btn_new_conto); 
conto.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 
     Intent intent=new Intent(Mov.this,onto.class); 
     startActivityForResult(intent, 2); 

и с этим кодом я передать значение:

lista.setOnItemClickListener(new OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 
       Dettaglio d = dettagli.get(position); 
      Intent intent=new Intent(); 
       intent.putExtra("conto", d.conto); 
       setResult(2,intent); 
finish(); 

с этим кодом я получаю значение:

protected void onActivityResult1(int requestCode, int resultCode, Intent data){ 
      super.onActivityResult(requestCode, resultCode, data); 
          if(requestCode==2){ 
       if(null!=data) { 
        conto.setText(data.getStringExtra("conto")); 
+0

«... но у меня нет данных, ...» Не могли бы вы объяснить, что немного больше? – codeMagic

+1

Вы не разместили код, в котором получаете значение ... – njzk2

+1

Чтобы уточнить: Показать свой метод onActivityResult(). Если у вас его нет, напишите. –

ответ

-1

В запущенной деятельности вы просто нужно позвонить setResult(int), а затем finish(). В вызывающей деятельности вы ловите результат в onActivityResult(int, int, Intent)

Подробнее об этом в developers guide

0

ActivityForResult является асинхронным вызов. Вы должны переопределить onActivityResult() от вашего начального действия, там вы получите результат второго действия.

Внутри вашей второй деятельности вы должны позвонить setResult() метод, продолжил finish()

+1

Почему asynchronic? Кроме того, что означает асинхронное? – Blackbelt

Смежные вопросы