簡體   English   中英

Android Toast沒有彈出

[英]Android Toast doesn't pop up

我的問題陳述::>我有一個按鈕,一個文本字段,我想在文本字段中輸入並單擊按鈕后彈出一個吐司。 但是,在輸入並單擊按鈕后,吐痰不會彈出。 相反,應用程序關閉。 如果我刪除文本字段,吐司就會出來。

所以我認為,給我錯誤的是文本字段。

這是我在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謝謝。

嘗試使用給定的代碼,使用YoursActivity.this而不是this

 public void onClick(View view){
    String string = getMyString();
    Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show(); 
    }

您必須在按鈕單擊之前初始化edittext。因此,輸入的文本可以在按鈕單擊時檢索。 現在將發生空指針異常。 所以請嘗試這樣

把它放在oncreate上

    EditText edit1=(EditText) findByViewId(R.id.editText1);
    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(); 
    }

嘗試這個:-

public void onClick(View view){
    String string = getMyString();
    Toast.makeText(YoursActivity.this, string,Toast.LENGTH_SHORT).show(); 
    }

並確保您的按鈕已實現為OnclickListener。

交叉檢查您是否在OnClickListener下放置toast。 然后,請試試這個。

public void onClick(View view){
String string = getMyString();
Toast toast=Toast.makeText(MainActivity.this, string , Toast.LENGTH_SHORT);
toast.show();

this總是引用當前對象,因此在onClick()方法中, this是指您已實現的Listener。

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(); } 

只需確保您的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(); 
}

你可以這樣做。 在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(); 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM