gpt4 book ai didi

java - View.getId() 有效,而 button.getId() 无效

转载 作者:行者123 更新时间:2023-12-02 09:38:02 25 4
gpt4 key购买 nike

我在android中实现了一个媒体播放器,它可以在不同按钮的帮助下播放不同的文件。

public class MainActivity extends AppCompatActivity {

MediaPlayer mediaPlayer;
Button button;
public void play(View view)
{

int id = view.getId();
String ourId = view.getResources().getResourceEntryName(id);

mediaPlayer = MediaPlayer.create(this,getResources().getIdentifier(ourId,"raw","com.example.demo"));
mediaPlayer.start();
}

上面的代码给出了正确的输出

public class MainActivity extends AppCompatActivity {

MediaPlayer mediaPlayer;
Button button;
public void play(View view)
{

int id = button.getId();
String ourId = view.getResources().getResourceEntryName(id);

mediaPlayer = MediaPlayer.create(this,getResources().getIdentifier(ourId,"raw","com.example.demo"));
mediaPlayer.start();
}

使应用程序崩溃。

如果我点击按钮,那么我应该获取按钮的 id 吗?

最佳答案

这一行:

int id  = button.getId();

由于 button 未初始化,您的应用程序崩溃。
更改为:

button = (Button) view;
int id = button.getId();

使用此代码,view 被转换为 Button,并将其分配给变量 button
因此 button 已正确初始化且不为 null
这并不意味着您必须执行此程序。
如果您需要的只是 id,那么请使用有效的代码来完成此操作,而无需将变量 view 转换为 Button。返回的 id 来自:

int id  = view.getId();

正确。

关于java - View.getId() 有效,而 button.getId() 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57339052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com