Не срабатывает onResult

261
26 марта 2017, 02:42

После успешной авторизации приложения падает, и не выдает никаких ошибок. Activity

public class LoginActivity extends AppCompatActivity {
    private static final String TAG = "Login";
    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;
    private FragmentLogin fragmentLogin;
    private FragmentAcount fragmentAcount;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fragmentLogin = new FragmentLogin();
        fragmentAcount = new FragmentAcount();
        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.activity, fragmentLogin).commit();
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        VKCallback<VKAccessToken> callback = new VKCallback<VKAccessToken>() {
            @Override
            public void onResult(VKAccessToken res) {
                // User passed Authorization
                Log.i(TAG, "good");
                startTestActivity();
            }
            @Override
            public void onError(VKError error) {
                Log.i(TAG, "error " + error.errorMessage);
            }
        };
        if (!VKSdk.onActivityResult(requestCode, resultCode, data, callback)) {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
    private void startTestActivity() {
        //startActivity(new Intent(this, WellcomeActivity.class));
        replaceFragment(fragmentAcount);
    }
    private void replaceFragment(Fragment fragment) {
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.activity, fragment);
        fragmentTransaction.commit();
    }
}

fragment

public class FragmentLogin extends Fragment {
    private Button enter;
    private static final String[] sMyScope = new String[]{
            VKScope.FRIENDS,
            VKScope.WALL,
            VKScope.PHOTOS,
            VKScope.NOHTTPS,
            VKScope.MESSAGES,
            VKScope.DOCS
    };
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_login, container, false);
        findId(v);
        enter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                enterVk();
            }
        });
        return v;
    }
    private void findId(View v) {
        enter = (Button)v.findViewById(R.id.enter);
    }
    private void enterVk() {
        try {
            VKSdk.login(getActivity(), sMyScope);
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}
Answer 1

Что-то делать с разметкой (а также много чего ещё) из onActivityResult - опасно. В этот момент актвити находится в "подвешенном состоянии" и код вызанный оттуда может отработать не так как ожидается. Попробуйте запустить код оттуда через runOnUiThread(Runnable runnable) чтобы он исполнился в основном потоке, когда активити оживёт.

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        startTestActivity();
    }
});
READ ALSO
Java Повернуть график

Java Повернуть график

Необходимо повернуть график вокруг начала координатГрафик без поворота:

210
как сделать hover эффекты как на примере

как сделать hover эффекты как на примере

Тут в примере нажмите на жёлтую кнопку и откроется демо сайта, где-то по середине сайта есть 5 картинок, при наведении на которые они заполняются...

322
C# Google Парсинг

C# Google Парсинг

Ребят я студент есть задача приложения для того что бы сделать запрос в гугл, и подсчитать количество слов на странице и вывести результат,...

253