Я новичок в программировании для Android, и теперь у меня есть первая проблема, которую я не смог решить с помощью поиска.
Я получаю сообщение об ошибке «Источник не найден» при попытке отобразить пользовательский диалог предупреждений, в котором говорится: «Исходное вложение не содержит источник для файла DialogFragment.class».
Я получаю эту ошибку независимо от использования библиотеки поддержки Android (а затем FragmentActivity и getSupportFragmentManager) или нет (затем Activity и getFragmentManager).
Ниже приведен чрезвычайно упрощенный код, который по-прежнему выдает ошибку. В этом случае он будет вызывать диалоговое окно только простым нажатием кнопки «ОК», реализованным в фрагменте_main.xml с помощью android:onClick="startDialogbyButton"
.
Основная деятельность:
package com.example.testdialogue;
//import android.app.Activity;
//import android.app.DialogFragment;
import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import android.os.Build;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
Toast.makeText(
this , "Achtung:...lala" , Toast.LENGTH_SHORT).show();
}
public void startDialogbyButton(View view){
showDialogU();
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
public void showDialogU() {
DialogFragment newFragment = new PlInputDialog();
newFragment.show(getSupportFragmentManager(), "dialog");
}
}
и Плинпутдиалог:
package com.example.testdialogue;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
public class PlInputDialog extends DialogFragment {
public PlInputDialog(){
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//int title = getArguments().getInt("title");
AlertDialog alertdialog = null;
LayoutInflater inflater = getActivity().getLayoutInflater();
final View customView = inflater.inflate(R.layout.dialog_player_input, null);
AlertDialog.Builder PlInDia = new AlertDialog.Builder(getActivity())
.setView(customView)
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alertdialog = PlInDia.create();
return alertdialog;
}
}
Я мог представить, что проблема не в самом коде, а в ошибке при добавлении библиотеки. Но учитывая, что это происходит и тогда, когда я не использую библиотеку поддержки, я не знаю, где я мог сделать ошибку, используя только обычную библиотеку Android.
Заранее спасибо.