ここに私の問題があります。私は赤い下線をつけています。loginFragment.show(getFragmentManager(), "login");
なぜパラメータに下線が付きますか? getSupportFragmentManager
を使用してAppCompatActivity
を使用せず、代わりにActivityを使用すると、プログラム自体にエラーはありませんが、ダイアログボックスを表示するためにボタンをクリックするとクラッシュします。ここで私のコード全体が表示されます。は、私がgetFragmentManager()を使用すると、私の.showに赤い下線をつけています。
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
static Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
}
public void showLogin(View v){
DialogFragment loginFragment = new LoginDialogFragment();
loginFragment.show(getFragmentManager(),"login");
}
public static class LoginDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new
AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.layout_login,null);
final EditText etUsername = (EditText)
v.findViewById(R.id.username);
final EditText etPassword = (EditText)
v.findViewById(R.id.password);
builder.setView(v).setPositiveButton(R.string.login, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String username, password;
username = etUsername.getText().toString();
password = etPassword.getText().toString();
String msg;
if(username.equalsIgnoreCase("abcd")&&password.equalsIgnoreCase("1234")){
msg = "Access Granted";
}
else {
msg = "Access Denied";
}
Toast.makeText(context, msg,Toast.LENGTH_SHORT).show();
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int id){
}
});
return builder.create();
}
}
}
ポストここにあなたの例外/エラーも –
エラーと) メソッドDialogFragment.show(android.support.v4.app.FragmentManager、String)は適用されません (引数の不一致、android.app.FragmentManagerはandroid.support.v4.app.FragmentManagerに変換できません) メソッドDialogFragmen t.show(FragmentTransaction、String)は適用されません (引数の不一致。 android.app.FragmentManagerをFragmentTransactionに変換できません) – apd
[android.support.v4.app.FragmentManager]に変換できません(https://stackoverflow.com/questions/16690364/cannot- android-support-v4-app-fragme) –