반응형
이번에는 xingAPI M 기반 GUI의 APP 하단에 신규로 네비게이션을 추가해 보도록 하겠습니다.
xingAPI M 기반의 코드를 신규로 작성하기 보다는 코드 수정을 통해 접근하는 방법이 좀더 이해가 쉽기 때문에 이러한 방식으로 진행 할 예정입니다.
▶ App 하단 GUI Navigation 추가
먼저 App GUI 하단에 Navigation을 추가해 보겠습니다.
smain_navi.xml은 네비게이션 디자인 용 xml 소스 입니다.
<include
android:id="@+id/navi_11"
layout="@layout/item_navi_btn"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="TextView"
android:visibility="visible" /> /*기존 네비게이션 코드*/
<include
android:id="@+id/navi_12"
layout="@layout/item_navi_btn"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="TextView"
android:visibility="visible" /> /*신규 추가 네비게이션*/
위와 같이 navi_12라는 이름으로 신규 추가를 합니다.
▶ 신규 추가 GUI Navigation 처리 코드 추가
이번에는 신규로 navigation 추가 된 12번 아이템을 처리하는 코드를 수정 작성해 보겠습니다.
MainView.kt 소스 파일을 아래와 같이 수정합니다.
val subviewlst = listOf<Triple<Int,String,Int>>(
Triple(R.id.navi_12,"뉴스수신",R.drawable.l_icon_01), /*신규로 추가된 navi*/
Triple(R.id.navi_1,"시간대별",R.drawable.l_icon_01),
Triple(R.id.navi_2,"기간주가",R.drawable.l_icon_01),
Triple(R.id.navi_3,"분별주가",R.drawable.l_icon_01),
Triple(R.id.navi_4,"주식호가",R.drawable.l_icon_01),
Triple(R.id.navi_5,"현물계좌주문체결",R.drawable.l_icon_01),
Triple(R.id.navi_6,"주문",R.drawable.l_icon_01),
Triple(R.id.navi_7,"TR조회 테스트",R.drawable.l_icon_01),
Triple(R.id.navi_8,"관심종목 테스트",R.drawable.l_icon_01),
Triple(R.id.navi_9,"잔고조회",R.drawable.l_icon_01),
Triple(R.id.navi_10,"체결내역",R.drawable.l_icon_01),
Triple(R.id.navi_11,"종목검색",R.drawable.l_icon_01)
)
위와 같이 네비를 처리할 리스트를 추가해 보았습니다.
val lstid = listOf<Triple<Int,String,Int>>(
Triple(R.id.navi_log,"로그인",R.color._WHITE),
subviewlst.get(0),
subviewlst.get(1),
subviewlst.get(2),
subviewlst.get(3),
subviewlst.get(4),
subviewlst.get(5),
subviewlst.get(6),
subviewlst.get(7),
subviewlst.get(8),
subviewlst.get(9),
subviewlst.get(10),
subviewlst.get(11), /*새로 추가된 navi (12의 경우 11번째)를 초기화 합니다.*/
Triple(R.id.navi_webview,"WebPage",R.drawable.l_icon_01)
)
subviewlst를 초기화 합니다.
fun onNaviBtnClicked(v: View)
{
val viewId = v.id
var title = ""
var fragment : Fragment? = null
when(viewId)
{
R.id.navi_log->{
LoginProcess()
return
}
subviewlst.get(0).first->{
if(!bJava) {
//fragment = s1001()
fragment = s1001_DM()
}
else {
fragment = s1001_j()
}
title = subviewlst.get(0).second;
}
subviewlst.get(1).first->{
fragment = s1002()
title = subviewlst.get(1).second;
}
.
. /*생략*/
.
subviewlst.get(10).first->{
fragment = s1010() //SocketTest()
manager.removeServiceAll(m_nHandle);
title = subviewlst.get(10).second;
}
subviewlst.get(11).first->{
fragment = s1010() //SocketTest()
manager.removeServiceAll(m_nHandle);
title = subviewlst.get(11).second;
} /* 새로 추가한 아이템, 향후 처리할 fragment를 추가하면 됩니다, 우선은 s1010으로 반영*/
R.id.navi_webview->{
val intent = Intent(this, WebViewActivity::class.java)
startActivity(intent)
return
}
}
신규 추가 후 초기화 된 리스트를 처리할 버튼 리스트를 생성합니다.
터치가 된 이후 처리할 fragment도 추가가 되었는데, 향후 처리할 클래스가 확정되면 해당 클래스를 연결해 주면 됩니다.
▶ 결론
GUI중 App 하단 Navi를 추가해 보았습니다.
추가된 Navi 버튼을 클릭 했을때 처리할 수 있는 클래스 및 페이지 생성을 이어서 소개해 보도록 하겠습니다.
반응형