Java Android Toast不';不会突然出现
我的问题陈述::> 我有一个按钮,一个文本字段,我想在文本字段中输入并单击按钮后弹出一个祝酒词。 但是,在输入并单击按钮后,土司不会弹出。相反,应用程序会关闭。 如果我删除文本字段,祝酒词就会很好 所以我认为,给我错误的是文本字段 以下是我在java中的文本字段代码:Java Android Toast不';不会突然出现,java,android,eclipse,Java,Android,Eclipse,我的问题陈述::> 我有一个按钮,一个文本字段,我想在文本字段中输入并单击按钮后弹出一个祝酒词。 但是,在输入并单击按钮后,土司不会弹出。相反,应用程序会关闭。 如果我删除文本字段,祝酒词就会很好 所以我认为,给我错误的是文本字段 以下是我在java中的文本字段代码: public String getMyString(){ EditText edit1=(EditText) findByViewId(R.id.editText1); String string1 =
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"
/>
这是我学习eclipse的第二天,所以我将欣赏较少的技术术语。我希望你们能帮助我,因为我尝试谷歌,但我真的什么都不懂。。。XD谢谢。试试这个..它会帮你
public void onClick(View view){
String string = getMyString();
Toast.makeText(getApplicationContext(), string,Toast.LENGTH_SHORT).show();
}
public void onClick(View view){
String string = getMyString();
Toast.makeText(classname.this, string,Toast.LENGTH_SHORT).show();
}
尝试使用给定的代码,使用
YoursaActivity.this
而不是this
public void onClick(View view){
String string = getMyString();
Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show();
}
您必须在单击按钮之前初始化编辑文本。这样,输入的文本可以在单击按钮时检索。现在将发生空指针异常。所以请像那样尝试 把它放在oncreate中
EditText edit1=(EditText) findByViewId(R.id.editText1);
试试这个:-
public void onClick(View view){
String string = getMyString();
Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show();
}
并确保您的按钮已实现到OnclickListener。交叉检查您是否正在将toast放在OnclickListener下。那么,请试试这个
public void onClick(View view){
String string = getMyString();
Toast toast=Toast.makeText(MainActivity.this, string , Toast.LENGTH_SHORT);
toast.show();
此
始终引用当前对象,因此在onClick()
方法中,此
引用您实现的侦听器
Toast的makeText()方法接受参数为makeText(上下文上下文、字符序列文本、int-duration)
在这里,您可以将上下文值传递为
getApplicationContext()
或getBaseContext()
ActivityName。如下所示
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(); }
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();
}
你可以这样做。在Toast中使用getActivity()
public void onClick(View view){
String string = getMyString();
Toast toast=Toast.makeText(getActivity(), string , Toast.LENGTH_SHORT);
toast.show(); }
试试这个:
public void onClick(View view){
String string = getMyString();
Toast.makeText(YourActivityName.this, string,Toast.LENGTH_SHORT).show();
}
您可以尝试在toast中使用getapplicationcontext()而不是此选项吗?发布日志猫,然后确保EditText与setContentView使用的布局相同。在应用程序关闭的情况下也发布日志。使用MainActivity.this作为上下文,而不是Toast中的“this”。是否向EditTextView输入任何文本?你能试着用一些硬代码信息来祝酒吗。