1

У меня есть фрагмент активности (MainActivity.java) внутри, а фрагмент (ItemFragment.java) имеет recyclerview, который показывает некоторые элементы. Когда объект кликнут, он начинает действие (ViewActivity.java) для результата. Однако метод onActivityResult в (MainActivity.java) не вызывается. Вот мои кодыonActivityResult не вызывается, хотя setResult называется

метод OnClick в классе ViewHolder, который начинает новую деятельность, когда элемент щелкнул

@Override 
public void onClick(View v) { 
     Intent i; 

     // activity is an instance of AppCompatActivity class (MainActivity.java) 
     i = new Intent(activity, ViewActivity.class); 

     activity.startActivityForResult(i, SyncTask.REQ_CODE); 
} 

коды в ViewActivity, который посылает результат

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
     .... 
     resultData=new Intent(); 
     resultData.putExtra(SyncTask.KEY_ACTION, action); 
     resultData.putExtra(SyncTask.KEY_POSITION, m.getAdapterPosition()); 


     setResult(Activity.RESULT_OK,resultData); 
     finish(); 

     return true; 
} 

метод onActivityResult в MainActivity.java

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    int action; 
    int[] positions; 

    if (requestCode == SyncTask.REQ_CODE) { 
     if (resultCode == Activity.RESULT_OK) { 
      // Handle action 

     } 
    } 
} 

файл манифеста

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.app" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="21" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity android:name=".activity.MainActivity" android:theme="@style/AppTheme.NoActionBar" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:theme="@style/Theme.AppCompat.Light" android:name=".activity.PreferencesActivity"></activity> 
    <activity android:theme="@style/AppTheme.NoActionBar" android:name=".activity.SignInActivity" android:label="@string/sign_in"></activity> 
    <activity android:theme="@style/AppTheme.NoActionBar" android:name=".activity.ViewMailActivity"></activity> 
</application> 

+0

похоже стоит. вы уверены, что 'setResult' вызывается во время выполнения. –

+0

Используете ли вы другой onActivityResult в своем коде? Я думаю, вам следует вызвать super.onActivityResult (requestCode, resultCode, data) после кода внутри вашего метода onActivityResult. – heloisasim

+0

Я проверил setResult, поставив точку останова. Он вызывается во время выполнения. @heloisasim Я попробовал, но не работал –

ответ

6

я понял проблему. Мой код запроса был отрицательным и, согласно документальному, если код запроса меньше 0, результат не отправляется.

+0

Отлично, что вы смогли это решить и спасибо за ответ на свой вопрос. Вы можете принять это как лучший ответ. –

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