那我新创一个类把button = findViewById(R.id.button)这句放在新创的类里行不行
时间: 2024-06-05 20:08:37 浏览: 146
呃,对于您的问题,我的回答是:可能是行得通的。但具体情况要看放在哪个类里,以及您的代码逻辑结构是怎样的。如果您把button = findViewById(R.id.button) 放在一个新创的类里,需要注意的是,您需要在新的类里声明变量 button,否则编译器会提示"button"未定义的错误。同时,您需要保证新的类能够访问到该语句所在的布局文件 R.id.button。这样,才能正确地获取到该控件的实例。总之,在实践中需要仔细考虑各种情况,保证代码能够正确运行。
相关问题
public int getContentViewResId() { return R.layout.act_sendlayout; } @Override public void initView() { user_phone = findViewById(R.id.title); password_text = findViewById(R.id.content); button = findViewById(R.id.button_login); button.setOnClickListener(this);
这段代码是一个 Android Activity 中的方法和初始化视图控件的代码。其中,`getContentViewResId()` 方法返回该 Activity 所使用的布局文件的资源ID,这里是 `R.layout.act_sendlayout`。而 `initView()` 方法则是用来初始化该 Activity 中的各个视图控件,包括 `user_phone`、`password_text` 和 `button`。其中 `findViewById()` 方法用于通过资源ID找到对应的视图控件,`setOnClickListener()` 方法用于给按钮设置点击事件监听器。
private Intent intent = null; void initialize() { inventoryButton = findViewById(R.id.inventoryButton); findButton = findViewById(R.id.findButton); settingButton = findViewById(R.id.settingButton); exitButton = findViewById(R.id.exitButton); languageButton = findViewById(R.id.languageButton); inventoryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Intent intent = new Intent(HomeActivity.this, HomeActivity.class); if (ButtonOnCilk.isFastViewClick(inventoryButton, getBaseContext())) { setContentView(R.layout.activity_main); CustomToast.showLoad(HomeActivity.this, getString(R.string.load)); startActivity(intent); // 读取 Excel 文件 List<String> data = readExcelFile(); listView = findViewById(R.id.rv_list); // 将数据显示在 ListView 中 ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); } } });有什么问题,怎么解决
这段代码的问题在于,`intent` 变量没有被初始化,而且在 `onClick` 方法中没有被赋值,因此会导致启动 `Activity` 失败。你可以将 `intent` 的初始化放在 `initialize` 方法中,并在 `onClick` 方法中赋值,修改后的代码如下:
```
private Intent intent = null;
void initialize() {
inventoryButton = findViewById(R.id.inventoryButton);
findButton = findViewById(R.id.findButton);
settingButton = findViewById(R.id.settingButton);
exitButton = findViewById(R.id.exitButton);
languageButton = findViewById(R.id.languageButton);
// 初始化 intent
intent = new Intent(HomeActivity.this, HomeActivity.class);
inventoryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ButtonOnCilk.isFastViewClick(inventoryButton, getBaseContext())) {
setContentView(R.layout.activity_main);
CustomToast.showLoad(HomeActivity.this, getString(R.string.load));
// 在 onClick 方法中赋值
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
// 读取 Excel 文件
List<String> data = readExcelFile();
listView = findViewById(R.id.rv_list);
// 将数据显示在 ListView 中
ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
}
});
}
```
另外,你需要确保 `readExcelFile()` 方法已经正确实现,否则也可能会导致启动 `Activity` 失败。
阅读全文