我的问题陈述::> 我有一个按钮,一个文本字段,我想在文本字段中输入并单击按钮后弹出一个Toast。 但是,在输入并单击按钮后,吐痰不会弹出。相反,应用程序关闭。 如果我删除文本字段,吐司就会出来。
所以我认为,给我错误的是文本字段。
这是我在java :::
中的文本字段的代码 public String getMyString(){
EditText edit1=(EditText) findByViewId(R.id.editText1);
String string1 = edit1.getText().toString();
return string1;
}
我将把它作为:::
返回给onClick方法 public void onClick(View view){
String string = getMyString();
Toast.makeText(this, string,Toast.LENGTH_SHORT).show();
}
在我的editText XML文件中
<EditText
android:id="@+id/editText1"
android:labelFor="@id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp"
android:ems="10"
android:inputType="text"
/>
这是我第二天学习日食,所以我会欣赏较少的技术术语。我希望你们可以帮助我,因为我试着谷歌,但我真的不懂任何东西...... XD谢谢。
答案 0 :(得分:1)
尝试使用给定的代码,使用YoursActivity.this
代替this
public void onClick(View view){
String string = getMyString();
Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:1)
您必须在按钮单击之前初始化edittext。因此,输入的文本可以在按钮单击时检索。现在将发生空指针异常。所以请尝试那样
将它放入oncreate
EditText edit1=(EditText) findByViewId(R.id.editText1);
答案 2 :(得分:0)
public void onClick(View view){
String string = getMyString();
Toast.makeText(getApplicationContext(), string,Toast.LENGTH_SHORT).show();
}
答案 3 :(得分:0)
试试这个..这会对你有帮助..
public void onClick(View view){
String string = getMyString();
Toast.makeText(classname.this, string,Toast.LENGTH_SHORT).show();
}
答案 4 :(得分:0)
试试这个: -
public void onClick(View view){
String string = getMyString();
Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show();
}
确保您的按钮已实现为OnclickListener。
答案 5 :(得分:0)
交叉检查您是否在OnClickListener下放置toast。那么,请试试这个。
public void onClick(View view){
String string = getMyString();
Toast toast=Toast.makeText(MainActivity.this, string , Toast.LENGTH_SHORT);
toast.show();
答案 6 :(得分:0)
this
始终引用当前对象,因此在onClick()
方法中,this
指的是您已实现的侦听器。
Toast的makeText()方法接受参数为makeText(Context context, CharSequence text, int duration)
您可以在此处传递上下文值
getApplicationContext()
,getBaseContext()
或通过提供 ActivityName.this
如下所示,
public void onClick(View view)
{
String string = getMyString();
Toast.makeText( getApplicationContext(), string,Toast.LENGTH_SHORT).show();
//Toast.makeText( getBaseContext(), string,Toast.LENGTH_SHORT).show();
//Toast.makeText( ActivityName.this, string,Toast.LENGTH_SHORT).show();
}
答案 7 :(得分:0)
确保您的Activity(或Fragment)正在实现OnClickListener接口
public class MyActivity implements View.OnClickListener { ...
然后,将textview的监听器设置为当前活动
edit1.setOnClickListener(this);
最后,请确保您按照此处的许多用户的建议使用此参考的活动:
@Override
public void onClick(View view){
String string = getMyString();
Toast.makeText(MyActivity.this, string,Toast.LENGTH_SHORT).show();
}
答案 8 :(得分:0)
你可以这样做。在Toast中使用getActivity()。
public void onClick(View view){
String string = getMyString();
Toast toast=Toast.makeText(getActivity(), string , Toast.LENGTH_SHORT);
toast.show(); }
答案 9 :(得分:0)
试试这个:
public void onClick(View view){
String string = getMyString();
Toast.makeText(YourActivityName.this, string,Toast.LENGTH_SHORT).show();
}