Java Android Toast不';不会突然出现

Java Android Toast不';不会突然出现,java,android,eclipse,Java,Android,Eclipse,我的问题陈述::> 我有一个按钮,一个文本字段,我想在文本字段中输入并单击按钮后弹出一个祝酒词。 但是,在输入并单击按钮后,土司不会弹出。相反,应用程序会关闭。 如果我删除文本字段,祝酒词就会很好 所以我认为,给我错误的是文本字段 以下是我在java中的文本字段代码: public String getMyString(){ EditText edit1=(EditText) findByViewId(R.id.editText1); String string1 =

我的问题陈述::> 我有一个按钮,一个文本字段,我想在文本字段中输入并单击按钮后弹出一个祝酒词。 但是,在输入并单击按钮后,土司不会弹出。相反,应用程序会关闭。 如果我删除文本字段,祝酒词就会很好

所以我认为,给我错误的是文本字段

以下是我在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"
       />


这是我学习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(); 
    }
    

只需确保您的活动(或片段)正在实现接口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(); 
}

你可以这样做。在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输入任何文本?你能试着用一些硬代码信息来祝酒吗。