ImageButton在click上没有做任何事 - android

时间:2015-05-21 19:21:38

标签: java android android-activity

我在Android上做了我的新应用程序的前端,我遇到了一个问题。 在我的第一个Activity上,我的按钮工作正常,并将用户带到第二个Activity,现在出现问题。 当我点击另一个按钮带我到第三个活动时没有任何反应。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageButton saldoButton = (ImageButton)findViewById(R.id.saldoButton);

    saldoButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.activity_saldo);

        }
    });
}

现在按照我的xml按钮:

            <ImageButton
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:id="@+id/saldoButton"
            android:layout_column="2"
            android:background="?android:attr/selectableItemBackground"
            android:src="@drawable/test02" />

任何人都知道发生了什么事?

4 个答案:

答案 0 :(得分:3)

你必须开始第三项活动

saldoButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
             Intent i= new Intent(currentActivity.this,thirdActivity.class);
             startActivity(i);

        }
    });

答案 1 :(得分:2)

您缺少XML上的android:clickable="true"

        <ImageButton
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/saldoButton"
        android:layout_column="2"
        android:clickable="true"
        android:background="?android:attr/selectableItemBackground"
        android:src="@drawable/test02" />

然后是课程活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageButton saldoButton = (ImageButton)findViewById(R.id.saldoButton);

    saldoButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.d("This Class", "I am a working button!");
            Intent intent = new Intent(this, NewClass.class);
            this.startActivity(intent);

        }
    });
}

现在应该可以了。如果没有,请告诉我。祝你好运!

答案 2 :(得分:1)

由于您要为新布局进行充气,因此您需要再次调用findViewById以重新获得对ImageView的访问权限,因为在一个布局布局中按钮的ID在另一个布局中不同。

saldoButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        setContentView(R.layout.activity_saldo);
        saldoButton = (ImageView) findViewById(R.id.saldoButton);
    }
});

话虽这么说,你应该创建另一个活动或另一个片段而不是膨胀另一个布局。

答案 3 :(得分:0)

在ImageButton XML中添加android:clickable =“ true”。

定义和初始化AudioManger。

var audioManager:AudioManager = context.getSystemService(Context.AUDIO_SERVICE) 
as AudioManager

之后。

imageButton.setOnClickListener(View.OnClickListener { view ->
        audioManager.playSoundEffect(AudioManager.FX_KEYPRESS_RETURN,1f);
    })