Setting만들기
Setting Activity및 PreferenceFragment
앱의 Setting을 위해 Activity를 새로 만들고, preference조절을 위한 Fragment를 삽입할 수 있다. 이 때 PreferenceFragment를 상속받는 CustomPreferenceFragemet를 사용한다.
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.AppCompatActivity;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
}
public static class CustomPreferenceFragment extends PreferenceFragment {
}
}
더불어 menifesto에서 Setting Activity의 parent activity도 지정해준다.
App bar에 Setting 아이콘 추가하기
app bar에 버튼을 추가하기 위해 메뉴 xml파일을 만들어야 한다.
res/menu
폴더를 만들고, main.xml
파일을 추가하자.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.android.(앱이름).(액티비티명)">
//메뉴 아이템 추가
<item
android:id="@+id/action_settings"
android:title="@string/settings_menu_item" />
</menu>
액티비티에 메뉴 아이템 세팅하기
원래 액티비티에서 세팅 창이 나오게 하기 위해서 몇가지 method를 override하자.
- onCreateOptionsMenu
메뉴 아이콘을 달아주는 메쏘드다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
세팅 아이콘을 클릭하면 여러 개의 메뉴가 나올 수 있다. 각 메뉴를 클릭했을 때 어떤 액션을 할 지에 대해 다음 method로 정의한다.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent settingsIntent = new Intent(this, SettingsActivity.class);
startActivity(settingsIntent);
return true;
}
return super.onOptionsItemSelected(item);
}
댓글남기기