我在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" />
任何人都知道发生了什么事?
答案 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);
})