当android中的按钮点击时活动没有转移到下一个活动?

时间:2013-05-15 11:48:43

标签: android android-activity imagebutton

我正试图通过点击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

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你有没有在添加按钮上设置onClickListener。

btnAdd.setOnClickListener(this);

还要检查

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

答案 2 :(得分: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
                }
            });

答案 3 :(得分: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函数中调用它,否则什么都不会发生。

答案 4 :(得分:0)

初始化按钮并首先在oncreate()

中添加侦听器

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