방금 Android 프로그래밍 학습을 시작하여 문제가 발생했습니다 : My alert dialog's don't show up
.Android : AlertDialog가 표시되지 않습니다
내 아이디어 : 앱이 실행되면 기기가 인터넷에 연결되어 있는지 자동으로 확인하고 (경고 대화 상자로) 제안합니다. 나는 많은 튜토리얼을보고 있었기 때문에
은 정말, 어떤 하나의 솔루션을 가지고, 희망, 그러나 모든 경우는 onClickListener
(버튼)
코드 조각으로 시작 코드이었다
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkConnection();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
void checkConnection() {
final ConnectivityManager connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
AlertDialog.Builder connectionAlert = new AlertDialog.Builder(this);
if (wifi.isConnectedOrConnecting()) {
// Do nothing
} else if (mobile.isConnectedOrConnecting()) {
connectionAlert.setMessage("We recommend to use wifi, enable it?");
connectionAlert.setPositiveButton("Enable", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Wifi has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
connectionAlert.show();
} else {
connectionAlert.setMessage("Please, enable internet connection!");
connectionAlert.setNeutralButton("Wifi", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Wifi has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNeutralButton("Mobile Data", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Mobile Data has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
connectionAlert.show();
}
}
}
Wi-Fi에 연결하지 않습니까? 가장 먼저 할 일은'if - else if - else' 부분을 주석 처리하고 경고가 아무런 조건없이 잘 보이는지 확인하는 것입니다. 그것의 잘 작동하는 경우에, 당신은 아마 경보가 보이지 않는 곳에 첫번째 if에 떨어지고있다. 왜 'finish()'라고 부르니? 그것을 제거하고 'Activity'를 변경하기 전에 경고가 올바르게 표시되는지 확인하십시오. – MatPag
1. 예, 무선 랜에 연결되어 있지 않습니다. 2. 모두 "토스트"로 작동했습니다. 3. 튜토리얼 때문에 finish()를 사용하고있었습니다. (그것을 제거, 아무것도 변경). 4.나는이 코드를 복사하여 MainActivity (작동)에 붙여 넣으면 알 수있다. – Crelix
'checkContext (R.layout.your_layout)'을 호출하여'checkConnection()'을 호출하기 전에'SplashActivity'에 대한 레이아웃을 설정해 보았습니까? – MatPag