2017-06-21 41 views
-1

新的android編碼,並遇到一個錯誤,我已經嘗試了多次修復和無濟於事。無法解析符號「顯示」

這裏是我的代碼:

import android.content.DialogInterface; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 
    private static final String TAG = "MainActivity"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main_menu, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_add_task: 
       Log.d(TAG, "Add a new task"); 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    final EditText taskEditText = new EditText(this); 
    AlertDialog dialog = new AlertDialog.Builder(this) 
      .setTitle("Add a new task") 
      .setMessage("What do you want to do next?") 
      .setView(taskEditText) 
      .setPositiveButton("Add", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        String task = String.valueOf(taskEditText.getText()); 
        Log.d(TAG, "Task to add: " + task); 
       } 
      }) 
      .setNegativeButton("Cancel", null) 
      .create(); 
    dialog.show(); 
} 

和錯誤是未能解決符號「秀」

任何建議表示讚賞和感謝提前。 :)

+1

dialog.show();是一種方法之外 – Jens

+0

您可以調用show而不是創建 –

+0

您好Jens,我該如何解決這個錯誤?對不起,我對此很陌生:D –

回答

0

在像這樣的函數內創建對話框。並調用功能,無論你想

import android.content.DialogInterface; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 
private static final String TAG = "MainActivity"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    showDialogBox(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_add_task: 
      Log.d(TAG, "Add a new task"); 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
public void showDialogBox() 
{ 
    final EditText taskEditText = new EditText(this); 
    AlertDialog dialog = new AlertDialog.Builder(this) 
      .setTitle("Add a new task") 
      .setMessage("What do you want to do next?") 
      .setView(taskEditText) 
      .setPositiveButton("Add", new  DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        String task = String.valueOf(taskEditText.getText()); 
        Log.d(TAG, "Task to add: " + task); 
       } 
      }) 
      .setNegativeButton("Cancel", null) 
      .create(); 
    dialog.show(); 
} 
} 
+0

非常感謝,修復它。有沒有簡單的解釋我做錯了什麼?我會盡快接受這個答案。再次感謝!! –

+0

您需要在函數內部編寫代碼。全局字段用於全局變量(一般) – hasbi

+0

我創建了一個函數「showDialogBox()」,並且我將alertdialog代碼移動到了這個函數中 – hasbi

0

請參考有關對話框here

AlertDialog.Builder alertDialog = new AlertDialog.Builder(
      Drawer.this); 
    alertDialog.setTitle("  Logout !!"); 
    alertDialog.setMessage("Are you sure you want to logout the session?"); 
    alertDialog.setIcon(R.drawable.ic_question); 
    alertDialog.setPositiveButton("YES", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 

         Toast.makeText(getApplicationContext(),"You are successfully Logout",Toast.LENGTH_LONG).show(); 

       } 
      }); 

    alertDialog.setNegativeButton("NO", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
       } 
      }); 
    alertDialog.show(); 
  • 必須關閉AlertDialog.Builder課後呼叫警報alertDialog.show。