관리 메뉴

moozi

ActionBar예제 본문

안드로이드개발강좌

ActionBar예제

moozi 2015. 10. 1. 13:55

안드로이드 하위버젼과 호환되는 ActionBar예제입니다.

 

 

 

package com.example.parkjs.actionbar;


import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;




public class MainActivity extends AppCompatActivity implements ActionBar.TabListener {

MyTabFragment myFrags[] = new MyTabFragment[3];
ActionBar.Tab tabSong, tabArtist, tabAlbum;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

tabSong = bar.newTab();
tabSong.setText("음악별");
tabSong.setTabListener(this);
bar.addTab(tabSong);

tabArtist = bar.newTab();
tabArtist.setText("가수별");
tabArtist.setTabListener(this);
bar.addTab(tabArtist);

tabAlbum = bar.newTab();
tabAlbum.setText("앨범별");
tabAlbum.setTabListener(this);
bar.addTab(tabAlbum);
}




@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
MyTabFragment myTabFrag = null;

if (myFrags[tab.getPosition()] == null) {

myTabFrag = new MyTabFragment();
Bundle data = new Bundle();
data.putString("tabName", tab.getText().toString());

myTabFrag.setArguments(data);
myFrags[tab.getPosition()] = myTabFrag;
} else
myTabFrag = myFrags[tab.getPosition()];

fragmentTransaction.replace(android.R.id.content, myTabFrag);
}

@Override
public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {

}

@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

}


public static class MyTabFragment extends Fragment {
String tabName;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle data = getArguments();
tabName = data.getString("tabName");
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);

LinearLayout baseLayout = new LinearLayout(getActivity());
baseLayout.setOrientation(LinearLayout.VERTICAL);
baseLayout.setLayoutParams(params);
if (tabName == "음악별")
baseLayout.setBackgroundColor(Color.RED);
if (tabName == "가수별")
baseLayout.setBackgroundColor(Color.GREEN);
if (tabName == "앨범별")
baseLayout.setBackgroundColor(Color.BLUE);

return baseLayout;
}

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}

'안드로이드개발강좌' 카테고리의 다른 글

다이얼로그 관련 예제  (0) 2015.10.26
웹뷰예제  (0) 2015.10.12
jsp json 활용 샘플  (0) 2015.06.03
jsp post 처리  (0) 2015.05.12
안드로이드 스튜디오에서 JSON 테스트  (0) 2015.04.30
Comments