我正在使用Android应用程序,大部分是在教程和阅读材料的帮助下,我的应用程序有点基础,进行一些计算并将结果显示给用户
我有什么
我创建了一个由this tutorial引导的片段,我刚用自己的EditText和Button替换了按钮和textview
我有一个EditText,一个Button和一个TextView,这些是用户在打开片段时看到的小部件
我的目标
我希望用户在EditText中输入值,当他/她单击按钮时,TextView会显示一些计算结果
我做了什么
我一直在尝试here,here,here,here的其他答案,但我不知道如何连线代码,每次我写一些代码片段我的应用程序崩溃,我不知道还能做什么
这是我的代码
public class Circle_Perimeter extends Fragment
{
EditText edtxt;
Button btn;
TextView txt;
public static Circle_Perimeter newInstance()
{
Circle_Perimeter fragment = new Circle_Perimeter();
return fragment;
}
public Circle_Perimeter()
{
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_circle__perimeter,container,false);
edtxt = (EditText)rootView.findViewById(R.id.editText);
btn = (Button)rootView.findViewById(R.id.button6);
txt = (TextView) rootView.findViewById(R.id.textView6);
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
}
});
return rootView;
}
}
问题
如何以及在何处编写必要的代码以使EditText发送Toast警告用户EditText为空?如果EditText为空,则禁用Button?
编辑:真的吗?一个downvote?而不是低估...只是发出警告或其他东西编辑2:我已经说过,我确实按照here的其他答案进行了操作,而我无法使我的代码正常工作,这就是为什么我在这里寻找答案的原因一段代码
答案 0 :(得分:1)
要通知EditText
中的文字更改,您需要使用TextWatcher
。
请查看此文档https://developer.android.com/reference/android/text/TextWatcher.html
public class Circle_Perimeter extends Fragment
{
EditText edtxt;
Button btn;
TextView txt;
public static Circle_Perimeter newInstance()
{
Circle_Perimeter fragment = new Circle_Perimeter();
return fragment;
}
public Circle_Perimeter()
{
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_circle__perimeter,container,false);
edtxt = (EditText)rootView.findViewById(R.id.editText);
btn = (Button)rootView.findViewById(R.id.button6);
txt = (TextView) rootView.findViewById(R.id.textView6);
//Initially set it as disabled
btn.setEnabled(false);
//Add textWatcher to notify the user
edtxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//Before user enters the text
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//On user changes the text
if(s.toString().trim().length()==0) {
btn.setEnabled(false);
Toast.makeText(getActivity(), "Text can not be empty..",
Toast.LENGTH_SHORT).show();
} else {
btn.setEnabled(true);
}
}
@Override
public void afterTextChanged(Editable s) {
//After user is done entering the text
}
});
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
//do your final job here
}
});
return rootView;
}
}
答案 1 :(得分:0)
检查编辑文本是否为空
很简单if{edittext.getText == null){}
或
if(editText.isEmpty){}
最好的方法是制作按钮
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(edittext != null){
//do what u want for no empty button
}else{
//block ur button}
}
});
答案 2 :(得分:0)
您可以使用EditText
捆绑的null
API检查TextUtils
个Android
个实例
if(!TextUtils.isEmpty(editText) {
//Do your desired work
}else {
//Notify user for rectification
}
要使用按钮,您可以使用其中任何一个:
button.setVisibility(VIEW.GONE)
button.setEnabled(false)