0

全部!我对开发 Android 很陌生。我已经遇到了很多问题,并且我自己解决了大部分问题,其中一些是通过在这里和其他网站上搜索的。我现在面临的问题,我似乎无法找到解决方案。这与这里其他人的要求很接近,但我找不到任何可以解决我的问题的问题。

我正在开发我的第一个大型应用程序的初始阶段,其中用户登录到第一个页面,然后被允许访问应用程序的其余部分和功能。我现在正在使用一个简单的登录应用程序的基本示例,它工作正常,但是当我尝试延迟第一个活动调用第二个活动直到结果发布时,它要么发布而不调用第二个活动,或者它不会发布结果并继续前进。我目前也在尝试捆绑结果并将它们显示在第二个活动中。不过我稍后会改变它,我只需要看看它是否能正常工作。

这是我的代码:(不确定我是否做对了。这是我的第一次!)

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Login button clicked
    ok = (Button)findViewById(R.id.btn_login);
    ok.setOnClickListener(this);

    result = (TextView)findViewById(R.id.lbl_result);


    final Handler handler1 = new Handler();
    handler1.postDelayed(new Runnable() {
        @Override
        public void run() {

            ok.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    final Bundle b = new Bundle();

                    EditText txt1 = (EditText)findViewById(R.id.editText1);
                    EditText txt2 = (EditText)findViewById(R.id.lbl_result);

                    b.putString("ID", txt1.getText().toString());
                    b.putString("PW", txt2.getText().toString());

                    final Handler handler2 = new Handler();
                    handler2.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            final Intent myIntent = new Intent(TempActivity.this, TempActivity2.class);             
                            myIntent.putExtras(b);
                            startActivity(myIntent);
                        }
                    }, 3000);                
                }
            });
        }
    }, 4000);
}   

我只是以错误的方式解决这个问题吗?任何帮助是极大的赞赏!我讨厌成为菜鸟!让我知道是否需要更多信息!

4

1 回答 1

0

哦……我不知道……如果它真的是对的……但据我了解你的代码……你正在使用

 handler1.postDelayed(new Runnable() {

并在其可运行的

  public void run() {


ok.setOnClickListener(new View.OnClickListener() {

在这里..您正在设置 onClickListener.. 它会在 4 秒后发生.. 因为这条线..

  }, 4000);

因此,如果您在 4 秒之前单击.. 我认为 onclicklistener 没有被设置...所以给一些时间.. 就像应用程序启动后 4 秒.. 然后尝试单击...我认为它应该可以工作..

于 2012-04-11T18:49:41.390 回答