(스플래시) 작업을로드 한 다음 다른 작업을 시작하는 스플래시 화면을 작성했습니다. (아래에 첨부했습니다. SPLASH 1이라고합니다.)스플래시 화면으로 인해 MenuItems이 표시되지 않습니다.
한 번만 실행해야하는이 스플래시 화면을 대체하기 위해 다른 스플래시 화면을 만들었습니다. SharedPreferences
부울을 생성 한 후 다른 활동을로드해야합니다. 이것으로 모든 것이 잘 보이지만 새로운 활동을로드 할 때 아무 메뉴도 나타나지 않습니다. SPLASH 2에서 무엇이 바뀌 었는지 전혀 알지 못합니다. 그러나 SPLASH 1이 정확히 동일한 작업을로드 한 후에는 MenuItems
이 나타나지 않습니다. (NEWCORE.JAVA)
정말 무슨 일이 일어나는지 잘 모르겠습니다. 여기 - 어떤 도움이라도 대단히 감사합니다!
SPLASH 1. (WORKING)을 (추가 정보가 필요한 경우 알려 주시기 바랍니다)
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.content.Intent;
import com.nfc.linkingmanager.R;
public class SplashScreen extends Activity {
private boolean mIsBackButtonPressed;
private static final int SPLASH_DURATION = 1000;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
Handler handler = new Handler();
// run a thread after 2 seconds to start the home screen
handler.postDelayed(new Runnable() {
@Override
public void run() {
// make sure we close the splash screen so the user won't come back when it presses back key
finish();
if (!mIsBackButtonPressed) {
// start the home screen if the back button wasn't pressed already
Intent intent = new Intent(SplashScreen.this, NewCore.class);
SplashScreen.this.startActivity(intent);
}
}
}, SPLASH_DURATION); // time in milliseconds (1 second = 1000 milliseconds) until the run() method will be called
}
@Override
public void onBackPressed() {
// set the flag to true so the next activity won't start up
mIsBackButtonPressed = true;
super.onBackPressed();
}
}
SPLASH 2 (작동하지 않는이 -이로드 활동에 표시되지 메뉴 아이템을 일으킴)
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.content.Intent;
import com.nfc.linkingmanager.R;
import android.content.SharedPreferences;
import java.lang.Object;
import android.preference.PreferenceManager;
public class SplashScreen extends Activity
{
private Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
Intent i = new Intent(SplashScreen.this, AppActivity.class);
SplashScreen.this.startActivity(i);
this.finish();
}
};
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("first_time", false))
{
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("first_time", true);
editor.commit();
Intent i = new Intent(SplashScreen.this, NewCore.class);
this.startActivity(i);
this.finish();
}
else
{
this.setContentView(R.layout.country_list);
handler.sendEmptyMessageDelayed(0, 2000);
}
}
}
NEWCORE.JAVA -
,174 (모두 스플래쉬 화면에 의해 연결이 SPLASH 2를 사용하는 경우에만 메뉴 아이템 누락)import android.os.AsyncTask;
import android.os.Bundle;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class NewCore extends ListActivity {
public static final String ROW_ID = "row_id";
private ListView conListView;
private CursorAdapter conAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
conListView=getListView();
conListView.setOnItemClickListener(viewConListener);
// map each name to a TextView
String[] from = new String[] { "name" };
int[] to = new int[] { R.id.countryTextView };
conAdapter = new SimpleCursorAdapter(NewCore.this, R.layout.country_list, null, from, to);
setListAdapter(conAdapter); // set adapter
}
@Override
protected void onResume()
{
super.onResume();
new GetContacts().execute((Object[]) null);
}
@Override
protected void onStop()
{
Cursor cursor = conAdapter.getCursor();
if (cursor != null)
cursor.deactivate();
conAdapter.changeCursor(null);
super.onStop();
}
private class GetContacts extends AsyncTask<Object, Object, Cursor>
{
DatabaseConnector dbConnector = new DatabaseConnector(NewCore.this);
@Override
protected Cursor doInBackground(Object... params)
{
dbConnector.open();
return dbConnector.getAllContacts();
}
@Override
protected void onPostExecute(Cursor result)
{
conAdapter.changeCursor(result); // set the adapter's Cursor
dbConnector.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.country_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
Intent addContact = new Intent(NewCore.this, NewCore.class);
startActivity(addContact);
return super.onOptionsItemSelected(item);
}
OnItemClickListener viewConListener = new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
Intent viewCon = new Intent(NewCore.this, NewCore.class);
viewCon.putExtra(ROW_ID, arg3);
startActivity(viewCon);
}
};
}
좋아 아래
를 넣어 - 그것은 다음과 같이 보일 것인가? https://docs.google.com/document/d/18dHDs38F-Broy9DmNl80omanC7WZjYmXQoqTj1zTiMU/edit P.S. 맞습니까? 내 다른 활동에서 어떻게 확장 할 수 있는지 보여 줄 수 있습니까? (나는 안드로이드 개발에 아주 익숙하다 - 나는 사과한다) – NoobNinja왜 2 차 스플래시 스크린이 보이지 않게 하는가? (나는 각 Activity마다 다른 MenuItems이 필요하다. 그래서 한 번에 모든 것을 저장하는 것이 효과가 있을지 모르겠다. 나는 각각의 액티비티에 그것들을 정의하고 싶다. 정의 된 MenuItem을 호출하기 위해 SPLASH SCREEN 2를 편집 할 수 있습니까? NEWCORE.JAVA?) – NoobNinja
첫 번째 스플래시 화면을 통해 직접 NEWCORE.JAVA를로드하면 메뉴 항목이 표시되는 것이 이상하지 않습니까?하지만 두 번째 스플래시 화면을 사용하여 NEWCORE.JAVA를로드 할 때 (단순히 NEWCORE.JAVA를 선택하는 경우) SharedPreference가 true 인 경우) 정확하게 동일한 활동 (NEWCORE.JAVA)을 호출 할 때 보이지 않게합니다. – NoobNinja