我一直试图让我的应用程序在登录后重定向到一个新的活动,我已经尝试了几乎一切都无济于事。我也在论坛上检查了所有相关的答案,但似乎没有任何效果。任何帮助将不胜感激。
登录活动代码:
@Override
public void onSuccess(@NonNull final Credentials credentials) {
Intent i = new Intent(MainActivity.this, testactivity.class);
startActivity(i);
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.auth0.samples">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="@string/auth0_domain"
android:pathPrefix="/android/com.auth0.samples/callback"
android:scheme="demo" />
</intent-filter>
</activity>
<activity android:name="materialtabs.activity.SimpleTabsActivity" />
<activity android:name=".testactivity"></activity>
</application>
</manifest>
Test.java:
package com.auth0.samples;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import com.auth0.samples.fragments.OneFragment;
import com.auth0.samples.fragments.ThreeFragment;
import com.auth0.samples.fragments.TwoFragment;
import java.util.ArrayList;
import java.util.List;
public class test extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_tabs);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Notices");
adapter.addFragment(new TwoFragment(), "Timetable");
adapter.addFragment(new ThreeFragment(), "Homework");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
进一步的故障排除后,我注意到应用程序将重定向到空白活动,因此必须在test.java中调用某些东西,这会搞乱一些事情。
答案 0 :(得分:0)
欢迎,首先提示一些:发布错误日志和更多相关代码。在这个例子中,在什么上下文中调用了onSuccess(...)。
现在回答你的问题,我认为它失败了,因为你的意图代码在onSuccess调用中。您是否通过将startActivity移动到onSuccess之外来尝试调试?让我们尝试最简单的测试,只需将该意图代码移动到MainActivity的onCreate即可。这应该使你的主要活动立即进入测试活动。如果您的应用不这样做,则表示testactivity.java文件中存在错误。如果是,则表示您的onsuccess()存在问题。
通过如上所述的简单调试,您可以轻松地隔离真正的问题,从而解决问题。以小增量步骤开始调试!如果您还没有,请参阅here以获取有关使用意图开始活动的更多详细信息。
编辑:谢谢我看到了新代码,所以你的测试类名为test.java而不是testactivity.java?然后在你的意图中,目标应该是test.class。