-1

我试图通过单击从一个活动移动到另一个活动ImageButton。但是当我点击按钮时,它不会移动到我在代码中指定的活动,甚至不会抛出错误。我不知道哪里有问题
这是我调用下一个活动的代码:

    package com.birthdayreminder;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.TextView;

       public class Reminder extends Activity {

ImageButton view, add, edit;

TextView tvadd, tvedit, tvview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reminder);

}

public void innicialize() {

    // assigning buttons
    view = (ImageButton) findViewById(R.id.bView);
    add = (ImageButton) findViewById(R.id.bAdd);
    edit = (ImageButton) findViewById(R.id.bEdit);

    // assign textview
    tvadd = (TextView) findViewById(R.id.tvAdd);
    tvedit = (TextView) findViewById(R.id.tvEdit);
    tvview = (TextView) findViewById(R.id.tvView);




add.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i=new Intent(Reminder.this, Addreminder.class);
        startActivity(i);
    }
});

       edit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // enter the code for bEditBtn click here
    }
});

      view.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // enter the code for bViewBtn click here
    }
    });
}

   } 

我还声明了类名,manifest.xml但它不起作用

Logcat 日志文件:单击按钮后的最后一个 logcat 文件的 5 行:

    05-15 18:19:25.495: W/AudioFlinger(33): write blocked for 69 msecs, 1245 delayed                
    writes, thread 0xc658
    05-15 18:19:28.964: I/ActivityManager(60): Starting: Intent {         
    act=com.birthdayreminder.REMINDER cmp=com.birthdayreminder/.Reminder } from pid 548
    05-15 18:19:29.409: I/ActivityManager(60): Displayed  
    com.birthdayreminder/.Reminder: +426ms
4

5 回答 5

1

尝试使用 getApplicationContext() 代替 Remainder.this

于 2013-05-15T11:52:36.317 回答
0

您是否在添加按钮上设置了 onClickListener。

btnAdd.setOnClickListener(this);

还要检查

你的v.getId()case R.id.bAdd:一样吗?调试并检查您的案例 R.id.bAdd: 是否正在执行..

于 2013-05-15T11:59:52.710 回答
0

将第一个活动中的按钮分别初始化为

 Button bAddbutton= (Button) findViewById(R.id.bAdd);
    Button bEditBtn= (Button) findViewById(R.id.bEdit);
    Button bViewBtn= (Button) findViewById(R.id.bView);

然后为每个按钮添加单独的 onClick 侦听器,如下所示,

bAddbutton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent i=new Intent(Reminder.this, Addreminder.class);
                    startActivity(i);
                }
            });

    bEditBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // enter the code for bEditBtn click here
                }
            });

    bViewBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // enter the code for bViewBtn click here
                }
            });
于 2013-05-15T12:06:19.403 回答
0

检查您的图像按钮上是否有点击侦听器,您已声明单击时要执行的操作,但如果您在图像按钮上没有任何侦听器,它无论如何都不会工作。你可以尝试这样的事情:

yourImageButton.setOnClickListener(new View.OnClickListener() {

          @Override
          public void onClick(View v) {
            Intent intent = new Intent(Reminder.this, Addreminder.class);
            startActivity(intent);
            }
        });

完成此操作后,您必须在 XML 文件中声明活动

<activity android:name="packageName.className" />

最后,检查新类是否也运行良好,但一定没问题!

==================================================== =================================

您不能在函数中声明函数或过程(就像您在 onCreate 中所做的那样),您可以简单地在 onCreate 函数中执行您在初始化时所做的事情,如下所示:

package com.birthdayreminder;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class Reminder extends Activity {

private ImageButton view;
private ImageButton add;
private ImageButton edit;

private TextView tvadd;
private TextView tvedit;
private TextView tvview;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reminder);


    // Instantiating Buttons
    view = (ImageButton) findViewById(R.id.bView);
    add = (ImageButton) findViewById(R.id.bAdd);
    edit = (ImageButton) findViewById(R.id.bEdit);

    // Instantiating Views
    tvadd = (TextView) findViewById(R.id.tvAdd);
    tvedit = (TextView) findViewById(R.id.tvEdit);
    tvview = (TextView) findViewById(R.id.tvView);


        // Adding a clickListener on add button
    add.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i=new Intent(Reminder.this, Addreminder.class);
            startActivity(i);
        }
    });
    // Adding a clickListener on edit button
    edit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // enter the code for bEditBtn click here
        }
    });
       // Adding a clickListener on view button
       view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // enter the code for bViewBtn click here
        }
    });
  }

}

如果您仍然有问题,请检查您的 XML 文件,并查看您是否正确声明了您的按钮。

问题修正:永远不要在函数中定义函数,因为每次调用第一个函数时,都会再次定义第二个函数。你做错了什么:

onCreate {                  //WRONG VERSION
   bla bla bla bla
   initialisation {
      bla bla bla
   }
}

你必须做的:

onCreate {                  //GOOD VERSION
   initialisation();
   bla bla bla
}
initialisation {
   bla bla bla 
}

可以在函数中调用函数,但不能在函数中定义函数。

此外,你永远不会调用你的初始化函数,你现在必须在你的 onCreate 函数中调用它,否则什么都不会发生。

于 2013-05-15T12:08:14.153 回答
0

初始化按钮并首先在 oncreate() 中添加监听器

按钮 btnAdd = (Button) findViewById(R.id.bAdd);
btnAdd.setOnClickListener(this);

于 2013-05-15T12:09:23.190 回答