MainActivity.xml、MenuActivity.xml の 2 つのレイアウトがあります。1stのAsyncTaskからMenuActivityをロードしたい。更新されたコードは次のとおりです。
class InternetCheck extends AsyncTask<Activity, Void, Boolean> {
public Activity act=new Activity();
protected Boolean doInBackground(Activity... activities) {
boolean status=false;
act=activities[0];
String rurl=act.getString(R.string.url_test);
try
{
URL url = new URL(rurl);
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000 * 20); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
status=true;
}
}
catch (MalformedURLException e1) {
status=false;
}
catch (IOException e) {
status=false;
}
return status;
}
protected void onPostExecute(Boolean result) {
if (result==false) {
MainActivity mActivity = (MainActivity) act;
mActivity.ShowNoConnectionButton();
}
else
{
Intent intent = new Intent(act, MenuActivity.class);
act.startActivity(intent);
//setContentView(R.layout.menu_activity);
};
}
}
結果が false の場合、UI クラスからボタンを表示します。true の場合、2 番目のアクティビティをロードする必要があります。startActivity(intent) の場合、エラーが発生します: InternetCheck 型のメソッドが未定義です。また、Intent パラメータと AsyncTask から UI メソッド ShowNoConnectionButton を呼び出しても問題ありませんか? Intent パラメーターに何を入れなければならないか、およびこれらを取得する方法を理解するのはかなり困難です。
しかし、それはエラーでアプリを停止します.
2 番目の画面クラス:
public class MenuActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_activity);
}
}