0

私のアプリケーションには3つのタブがあります。この1つのタブには、複数のアクティビティがあります(つまり、このタブには子タブへのナビゲーションがあります)。1つの子アクティビティでstartActivityforResult()を使用しました。ただし、制御はonActivityResult()メソッドには適用されません。これを実装する方法。誰か助けてくれませんか。

コード

public class Activity_1 extends Activity
{


public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    View contentView = LayoutInflater.from(getParent()).inflate(R.layout.static_search_filters, null);  
    setContentView(contentView);  

    states_tv = (TextView)findViewById(R.id.state);
    states_tv.setOnClickListener(states_etListener);        
}

private OnClickListener states_etListener = new View.OnClickListener()
{
    public void onClick(View v)
    {               
        Intent intent = new Intent(getParent(), RB_CategoriesMList.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivityForResult(intent,GET_SEL_STATES_LIST);             
    }       
};

 protected void onActivityResult(int requestCode, int resultCode, Intent data) 
 {
      super.onActivityResult(requestCode, resultCode, data);    
      //I do some stuff here
 }
}   

// Activity_2

public class RB_CategoriesMList extends ListActivity
{



public Button sbtn;   

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.categories_list);           

    sbtn =(Button)findViewById(R.id.submit_categories);
    sbtn.setOnClickListener(sbtn_listener);
}       

private OnClickListener sbtn_listener = new View.OnClickListener()
{
    public void onClick(View v)
    {
        Intent state_intent = getIntent();              
        state_intent.putExtra("selected_states", "");                                       
        setResult(RESULT_OK,state_intent);
        finish();           
    }       
};  
}   
4

2 に答える 2

0

電話しないでください

  super.onActivityResult(requestCode, resultCode, data);    

onActivityResultを受け取ったら、リクエストコードが自分のものであるかどうかを確認してから、自分で処理を行います。それ以外の場合は、スーパーと呼ぶ必要があります。

それで:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    if (requestCode == GET_SEL_STATES_LIST) {
        // Do your stuff
    } else {
        super.onActivityResult(requestCode, resultCode, data);    
    }
}
于 2012-04-13T12:48:04.423 に答える