No ver la interfaz de EditNameDialogListener

Me gustaría volver a escribir la cadena de usuario en el fragmento de diálogo: "AddFriendDialogFragment.java" de nuevo a la actividad que lo había llamado: "HomeActivity.java". Estoy haciendo esto a través de una interfaz declarada dentro de "AddFriendDialogFragment.java": "EditNameDialogListener". Sin embargo, por alguna razón, HomeActivity no está viendo esta interfaz, por lo que estoy recibiendo un error "No se puede resolver el símbolo:" EditNameDialogListener ".

"HomeActivity.java":

package tutorial.com.example.jerryhou.dialogactionbartutorial; import android.app.Activity; import android.app.DialogFragment; import android.app.FragmentManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class HomeActivity extends Activity implements EditNameDialogListener { @Override public void onFinishEditDialog(String inputText) { Toast.makeText(this, "Hi, " + inputText, Toast.LENGTH_SHORT).show(); } public void showUsernameSearchDialog(View v) { FragmentManager fragmentManager = getFragmentManager(); DialogFragment newFragment = new AddFriendDialogFragment(); newFragment.show(fragmentManager, "AddFriendDialog"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_home, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

"AddFriendDialogFragment.java":

 package tutorial.com.example.jerryhou.dialogactionbartutorial; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.net.Uri; import android.os.Bundle; import android.app.Fragment; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; public class AddFriendDialogFragment extends DialogFragment { private static final String TAG = "AddFriendDialogFragment"; public interface EditNameDialogListener { void onFinishEditDialog(String inputText); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog layout View addFriendDialogView = inflater.inflate(R.layout.fragment_add_friend_dialog, null); // Set an EditText view to get user input final EditText usernameEditText = (EditText) addFriendDialogView.findViewById(R.id.username); builder.setView(addFriendDialogView) // Add action buttons .setPositiveButton(R.string.search, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { //Retrieve Username typed in String username_querystr = usernameEditText.getText().toString(); //Correctly retrieving query str Log.v(TAG, "Going to search " + username_querystr); //Pass back query str to search in HomeActivity EditNameDialogListener activity = (EditNameDialogListener) getActivity(); activity.onFinishEditDialog(usernameEditText.getText().toString()); } }) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { AddFriendDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } } 

Incluso si están en el mismo paquete, no puede utilizar EditNameDialogListener directamente como es una interfaz interna .

Usted tiene 2 opciones aquí:

-> Use el EditNameDialogListener completo de EditNameDialogListener , es decir AddFriendDialogFragment.EditNameDialogListener

 public class HomeActivity extends Activity implements AddFriendDialogFragment.EditNameDialogListener 

-> Importar explícitamente EditNameDialogListener

 import tutorial.com.example.jerryhou.dialogactionbartutorial.AddFriendDialogFragment.EditNameDialogListener public class HomeActivity extends Activity implements EditNameDialogListener 

El nombre de la interfaz implementada debe ser AddFriendDialogFragment.EditNameDialogListener

 public class HomeActivity extends Activity implements AddFriendDialogFragment.EditNameDialogListener 

Puede copiar la interfaz en una unidad / archivo de compilación separado

O

Probablemente usando el identificador estático del alcance delante de su interfaz

 public static interface EditNameDialogListener {...} 

Y algo como @Hacketo mencionado ayudará:

 public class HomeActivity extends Activity implements AddFriendDialogFragment.EditNameDialogListener 
  • Parse + Robolectric causando java.lang.VerifyError: Tipo incorrecto en pila de operandos
  • ¿Por qué Android no limpia la memoria después de terminar la actividad?
  • Cuando está fuera del hilo principal, ¿cómo puedo obtener algún código para ejecutarse en el hilo principal lo más rápido posible?
  • Java / Android - ¿Cómo imprimir una traza de pila completa?
  • Suprimir potencial NullPointerException en Android Studio
  • Android: Interrumpir el hilo contenido en un método
  • ¿Puedo crear aplicaciones de Windows Phone usando java?
  • RxJava - subir archivos secuencialmente - emitir el siguiente elemento, cuando onNext llamado
  • Reduciendo el tamaño de la aplicación para Android (apk)
  • Tabs no toma el ancho completo de la pantalla
  • Guardar un ImageView en la Galería - El código no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.