FragmentのViewをいじってみる
タブで動かせるようになったんでFragment部分のViewをいじってみます
ActivityとFragment
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.app.MainActivity" tools:ignore="MergeRootFrame" />
fragment_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.app.MainActivity$PlaceholderFragment"> <TextView android:text="tab1 test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/test_button" android:layout_below="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/test_textfield" android:layout_below="@+id/test_button" android:layout_toRightOf="@+id/textView" android:layout_marginTop="61dp" /> </RelativeLayout>
MainActivity.Java
package com.example.app; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.addTab(actionBar.newTab().setText("Tab1").setTabListener( new MainTabListener<MainFragmentView>( this, "flag1", MainFragmentView.class ) )); actionBar.addTab(actionBar.newTab().setText("Tab2").setTabListener( new MainTabListener<SubFragmentView>( this, "flag2", SubFragmentView.class ) )); } }
MainFragment.Java
package com.example.app; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class MainFragmentView extends Fragment{ private TextView textView; @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_main, container, false); textView = (TextView)view.findViewById(R.id.test_textfield); textView.setText("text test"); Button button = (Button)view.findViewById(R.id.test_button); button.setText("change text!"); button.setOnClickListener(button1onClickListener); return view; } View.OnClickListener button1onClickListener = new View.OnClickListener(){ @Override public void onClick(View v){ changeShowText("button click now!"); } }; public void changeShowText(String str){ textView.setText(str); } }
こんな感じでactivity_mainの上にあるFragmentをいじれるようになりました。
ここまでこれれば後は中身の実装していけばかけーぼはできそうですね。
書き方ってかなり独自になっている気がするけどこれで問題ないのかな。。。
間違ってたら誰か教えてください。
とりあえず
ActivityとFragmentを分けてFragment部分でViewの操作をすることができました。
このままかけーぼの完成目指してがんばります。
補足
前回の分とあわせてgithubにコミットできましたので公開。
https://github.com/kaisou4537/Mo