android - 给某个 EditText 焦点
问题描述
我正在使用 2 个 EditText 并排使用,左边的焦点集中在片段启动上,我想给右边的焦点我试图在右边的 EditText 上调用 requestFocus() 但它不起作用
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.sandwich_fragment,container, false);
sandwichNameEditText = view.findViewById(R.id.sandwich_name_edit_text);
sandwichPriceEditText = view.findViewById(R.id.sandwich_price_edit_text);
insertSandwichImageView = view.findViewById(R.id.insert_sandwich_btn);
sandwichListView = view.findViewById(R.id.sandwich_list);
dbHandler = new DBHandler(getContext(),null);
sandwichArrayList = dbHandler.getSandwiches();
final SandwichListAdapter adpater = new SandwichListAdapter(getContext(),
R.layout.sandwich_item, sandwichArrayList);
sandwichListView.setAdapter(adpater);
insertSandwichImageView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(sandwichNameEditText.getText().toString().equals("") || sandwichPriceEditText.getText().toString().equals("")){
Toast.makeText(getContext(),"No empty strings.", Toast.LENGTH_SHORT).show();
return;
}
Sandwich sandwich = new Sandwich(sandwichNameEditText.getText().toString(),
Double.parseDouble(sandwichPriceEditText.getText().toString()));
dbHandler.addSandwich(sandwich);
adpater.add(sandwich);
sandwichNameEditText.setText("");
sandwichPriceEditText.setText("");
sandwichNameEditText.requestFocus(); // working here
}
});
sandwichNameEditText.requestFocus(); // not working here
return view;
解决方案
尝试调用requestFocus
该onViewCreated
方法。
一旦创建了焦点请求,您就应该这样做View
。
您可以在此处找到有关 a 之间的区别onCreateView
和onViewCreated
方法的一些见解。Fragment
也就是说,您也应该在其中移动视图元素的初始化onViewCreated
,因为它们是您想要在创建视图之后而不是在创建视图时执行的操作。只需将inflate
逻辑留在那里,一旦View
存在就执行其他逻辑。
推荐阅读
- r - 在 xaringan 演示文稿中使用表情符号
- python - Python 程序的输出为“无”
- c# - 我可以在字符串数组中获取某个用户的关注者吗
- c - 逐字符读取文件字符会导致最后一行截断
- intellij-idea - IntelliJ - 如何定义每个开发人员都有不同的 SDK 的项目 SDK?
- python - 计算三元图中数据点的面积和重叠面积?
- c++ - c ++互斥锁可以跨方法/变量吗?如果是这样,为什么它在这里不起作用?
- fosuserbundle - LogoutListener 给了我一个“InvalidArgumentException”
- python - Pandas:使用 [columnname][rownumber] 选择数组的值仅适用于多索引
- active-directory - Microsoft Active Directory 是否可以选择成为身份提供者?