android-studio - 如何从 android studio 中的 MainActivity.java 访问 XML GUI 对象?
问题描述
我想在我的 Android 应用程序代码中添加一个按钮单击事件。
这是我的代码:
package com.example.myapplication;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;
public class FirstFragment extends Fragment {
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState
) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_first, container, false);
}
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NavHostFragment.findNavController(FirstFragment.this)
.navigate(R.id.action_FirstFragment_to_SecondFragment);
}
});
}
public void button1_Click(View view)
{
EditText editTextNumber = (EditText)findViewById(R.id.editTextNumber);
}
}
它说 findViewById 是未定义的。我怎样才能解决这个问题?
感谢您所有的帮助。它工作正常。
解决方案
您可以使用 setText 方法通过单击按钮来更改文本框的文本:
public void onBtnChangeText(View view) {
EditText editText = (EditText)findViewById(R.id.simpleEditText);
editText.setText("New text");
}
我的xml文件是:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0390FF"
android:onClick="onBtnChangeText"
android:text="Click to change text"
android:textAllCaps="false"
android:textSize="20sp" />
<EditText
android:id="@+id/simpleEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Old text"
android:gravity="center"/>
单击按钮时,文本将从“旧文本”更改为“新文本”:
推荐阅读
- ansible - 连接字符串以在 jinja2 中创建变量
- c - 系统调用挂钩示例参数不正确
- sql - Regex Postgresql:递归删除字符串的最后一部分
- docker - nvidia-docker 在本地找不到 nvidia-smi:latest
- git - 如何在 github 上删除以前与 master 合并的分支
- vuejs2 - 滚动到 v-expansion-panel 打开
- c++ - 'struct std::iterator_traits 中没有名为 'value_type' 的类型
- r - 重叠晶格直方图的常见断点和自由轴
- twig - 如何在树枝模板中发现“应用程序”?
- css - FlexBox 容器无响应