Добавлен пример навигации по фрагментам

This commit is contained in:
Victor 2013-08-29 16:16:34 +03:00
parent c9b6799804
commit 9efd7f8d86
4 changed files with 83 additions and 2 deletions

View File

@ -8,6 +8,8 @@
android:minSdkVersion="14" android:minSdkVersion="14"
android:targetSdkVersion="18" /> android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:allowBackup="true" android:allowBackup="true"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"

View File

@ -1,5 +1,7 @@
package com.annimon.client; package com.annimon.client;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle; import android.os.Bundle;
import android.app.Activity; import android.app.Activity;
import android.view.Menu; import android.view.Menu;
@ -10,6 +12,9 @@ import android.widget.ListView;
import android.widget.Toast; import android.widget.Toast;
import com.annimon.client.adapters.ActionsAdapter; import com.annimon.client.adapters.ActionsAdapter;
import com.annimon.client.entities.Action;
import com.annimon.client.fragments.DiaryFragment;
import com.annimon.client.fragments.ForumFragment;
import net.simonvt.menudrawer.MenuDrawer; import net.simonvt.menudrawer.MenuDrawer;
import net.simonvt.menudrawer.Position; import net.simonvt.menudrawer.Position;
@ -22,9 +27,8 @@ public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
/*Intent intent = new Intent(this, DiaryActivity.class);
startActivity(intent);*/
getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
menuDrawer = MenuDrawer.attach(this, MenuDrawer.Type.BEHIND, Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW); menuDrawer = MenuDrawer.attach(this, MenuDrawer.Type.BEHIND, Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW);
menuDrawer.setContentView(R.layout.content); menuDrawer.setContentView(R.layout.content);
@ -41,6 +45,7 @@ public class MainActivity extends Activity {
@Override @Override
public void onItemClick(AdapterView<?> av, View v, int position, long flags) { public void onItemClick(AdapterView<?> av, View v, int position, long flags) {
showFragment(adapter.getAction(position));
Toast.makeText(getApplicationContext(), adapter.getAction(position).getName(), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), adapter.getAction(position).getName(), Toast.LENGTH_SHORT).show();
} }
}); });
@ -65,5 +70,22 @@ public class MainActivity extends Activity {
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
private void showFragment(Action action) {
Fragment fragment = null;
final String path = action.getPath();
if ("forum".equals(path)) {
fragment = new ForumFragment();
} else if ("diary".equals(path)) {
fragment = new DiaryFragment();
}
if (fragment == null) return;
final FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.replace(R.id.content, fragment);
tr.commit();
}
} }

View File

@ -0,0 +1,23 @@
package com.annimon.client.fragments;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DiaryFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//final View v = inflater.inflate(R.layout.about, container, false);
TextView tv = new TextView(getActivity());
tv.setText("This is diary fragment " + System.currentTimeMillis());
return tv;
}
}

View File

@ -0,0 +1,34 @@
package com.annimon.client.fragments;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
public class ForumFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//final View v = inflater.inflate(R.layout.about, container, false);
//TextView tv = new TextView(getActivity());
//tv.setText("This is forum fragment " + System.currentTimeMillis());
WebView wv = new WebView(getActivity());
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
wv.loadUrl("http://annimon.com/forum/");
return wv;
}
}