为什么我的意图不起作用?

时间:2017-03-04 14:08:50

标签: java android android-studio

当我点击Signin按钮时,App崩溃了。当我调试代码时,它会转移到" Looper.java"的最后一个块。文件。我没有任何具有此名称的文件。

MainActivity.java

private void signIn() {

   Intent intent = new Intent(MainActivity.this, Main_Tab.class);
    startActivity(intent);
    setContentView(R.layout.activity_main_home);
}

Looper.java

try {
            msg.target.dispatchMessage(msg);
        } finally {
            if (traceTag != 0) {
                Trace.traceEnd(traceTag);
            }
        }

7 个答案:

答案 0 :(得分:0)

试试这个

private void signIn() {
    Intent intent = new Intent(MainActivity.this, Main_Tab.class);
    startActivity(intent);    
}

答案 1 :(得分:0)

以下行应在开始活动之前。

setContentView(R.layout.activity_main_home);

因为当您运行新活动时,将显示新内容而不是旧内容。 它应该是这样的。

private void signIn() {
   setContentView(R.layout.activity_main_home);
   Intent intent = new Intent(MainActivity.this, Main_Tab.class);
    startActivity(intent);

}

答案 2 :(得分:0)

render(
    <Provider store={store}>
        <Router onUpdate={scrollToTop} history={history} >
            <Route path="/" component={App}>
                <IndexRedirect to="app/dashboard" />   // IndexRedirect

                <Route path="404" component={PageErr404} />
                <Route path="app" component={MainApp}>
                    <Route path="dashboard" component={Dashboard} />
                </Route>
                <Redirect from="*" to="404" />        // Redirect
            </Route>
        </Router>
    </Provider>,
    document.getElementById('app-container')
)

试试这个,开始活动后不要调用setContentView方法。

答案 3 :(得分:0)

onCreate()方法中,始终将这两行放在最上面 -

 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

因此,onClickListener()中所需的一切,在这种情况下signIn()就是这些。

Intent intent = new Intent(MainActivity.this, Main_Tab.class);
startActivity(intent)

如果应用仍在崩溃,请调试onCreate()的{​​{1}}方法并发布日志报告。

答案 4 :(得分:0)

将您的登录构造函数更改为此

private void signIn() {

Intent intent = new Intent(context, Main_Tab.class);
startActivity(intent);
finish();
}

并在你的onCreate构造函数中添加它,如果不存在的话。

final Context context = this;

如果您仍有问题,请告诉我。

答案 5 :(得分:0)

您确定Main_Tab.class扩展了某种Activity类,例如“AppCompatActivity”。引起我注意的一件事是你在Main_Tab中使用下划线,但我想我个人喜欢使用camelcase来命名类。

也尝试删除:

setContentView(R.layout.activity_main_home);

答案 6 :(得分:0)

您不会将活动(Main_Tab)添加到AndroidManifest.xml文件中 我遇到了同样的问题,解决了这个问题。