Below activity is called by mainactivity.This activity will call 3 fragments.Fragmenttab1.java is the first fragment.The main activity is only using intent to call Fragmenttab which in turn will call the first fragment.
FragmentTab.java
package com.androidbegin.absviewpagertutorial;
import java.util.ArrayList;
import java.util.Locale;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.CursorAdapter;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.MenuItem.OnActionExpandListener;
import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener;
import com.actionbarsherlock.widget.SearchView;
public class FragmentTab extends SherlockFragmentActivity implements TextView.OnEditorActionListener,SearchView.OnQueryTextListener,
SearchView.OnSuggestionListener{
//actionbarsherlock is used to display tabs and search at the top
// Declare Variables
ActionBar mActionBar;
ViewPager mPager;
Tab tab;
EditText editsearch;
private static final String TAG_LIST = "list";
public static int THEME = R.style.Theme_Sherlock;
private SuggestionsAdapter mSuggestionsAdapter;
private static final String[] COLUMNS = {
BaseColumns._ID,
SearchManager.SUGGEST_COLUMN_TEXT_1,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
//((TextView)findViewById(R.id.text)).setText(R.string.search_views_content);
// Activate Navigation Mode Tabs
mActionBar = getSupportActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Locate ViewPager in activity_main.xml
mPager = (ViewPager) findViewById(R.id.pager);
// Activate Fragment Manager
FragmentManager fm = getSupportFragmentManager();
// Capture ViewPager page swipes
ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// Find the ViewPager Position
mActionBar.setSelectedNavigationItem(position);
}
};
mPager.setOnPageChangeListener(ViewPagerListener);
// Locate the adapter class called ViewPagerAdapter.java
ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm);
// Set the View Pager Adapter into ViewPager
mPager.setAdapter(viewpageradapter);
// Capture tab button clicks
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// Pass the position on tab click to ViewPager
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Create first Tab
tab = mActionBar.newTab().setText("Search").setTabListener(tabListener);
mActionBar.addTab(tab);
// Create second Tab
tab = mActionBar.newTab().setText("Fav").setTabListener(tabListener);
mActionBar.addTab(tab);
// Create third Tab
tab = mActionBar.newTab().setText("Official Search").setTabListener(tabListener);
mActionBar.addTab(tab);
}
/* public boolean onCreateOptionsMenu(Menu menu) {
// Get the options menu view from menu.xml in menu folder
getSupportMenuInflater().inflate(R.menu.actions, menu);
// Locate the EditText in menu.xml
editsearch = (EditText) menu.findItem(R.id.menu_search).getActionView();
// Capture Text in EditText
editsearch.addTextChangedListener(textWatcher);
// Show the search menu item in menu.xml
MenuItem menuSearch = menu.findItem(R.id.menu_search);
menuSearch.setOnActionExpandListener(new OnActionExpandListener() {
// Menu Action Collapse
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Empty EditText to remove text filtering
editsearch.setText("");
editsearch.clearFocus();
return true;
}
// Menu Action Expand
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// Focus on EditText
editsearch.requestFocus();
// Force the keyboard to show on EditText focus
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
return true;
}
});
return true;
}*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Used to put dark icons on light action bar
boolean isLight = FragmentTab.THEME == R.style.Theme_Sherlock_Light;
//Create the search view
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("Search for employees");
searchView.setOnQueryTextListener(this);
searchView.setOnSuggestionListener(this);
if (mSuggestionsAdapter == null) {
MatrixCursor cursor = new MatrixCursor(COLUMNS);
cursor.addRow(new String[]{"1", "'Murica"});
cursor.addRow(new String[]{"2", "Canada"});
cursor.addRow(new String[]{"3", "Denmark"});
mSuggestionsAdapter = new SuggestionsAdapter(getSupportActionBar().getThemedContext(), cursor);
}
searchView.setSuggestionsAdapter(mSuggestionsAdapter);
menu.add("Search")
.setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.abs__ic_search)
.setActionView(searchView)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
//Toast.makeText(this, "You searched for: " + query, Toast.LENGTH_LONG).show();
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("name",query));
String response = null;
try{
response = CustomHttpClient.executeHttpPost("http://10.0.2.2/android_db/ppf4_search.php",postParameters);
String result = response.toString();
Intent intent = new Intent(FragmentTab.this, AdvancedSearch.class);
intent.putExtra("newresult", result);
startActivity(intent);}
catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
@Override
public boolean onSuggestionSelect(int position) {
return false;
}
@Override
public boolean onSuggestionClick(int position) {
Cursor c = (Cursor) mSuggestionsAdapter.getItem(position);
String query = c.getString(c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1));
Toast.makeText(this, "Suggestion clicked: " + query, Toast.LENGTH_LONG).show();
return true;
}
private class SuggestionsAdapter extends CursorAdapter {
public SuggestionsAdapter(Context context, Cursor c) {
super(context, c, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
return v;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView tv = (TextView) view;
final int textIndex = cursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1);
tv.setText(cursor.getString(textIndex));
}
}
// EditText TextWatcher
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String text = editsearch.getText().toString()
.toLowerCase(Locale.getDefault());
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
};
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// TODO Auto-generated method stub
return false;
}
}
FragmentTab1.java
package com.androidbegin.absviewpagertutorial;
//This is the first fragment which is called
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;
public class FragmentTab1 extends SherlockFragment implements OnItemSelectedListener {
Button submit;
TextView tv;
EditText jname;
EditText jemail;
EditText jinterest;
String returnString;
@Override
public SherlockFragmentActivity getSherlockActivity() {
return super.getSherlockActivity();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Get the view from fragmenttab1.xml
View view = inflater.inflate(R.layout.fragmenttab1, container, false);
final Spinner spinner1 = (Spinner) view.findViewById(R.id.Spinner1);
// Spinner click listener
spinner1.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> categories = new ArrayList<String>();
ArrayList<NameValuePair> response_Parameters = new ArrayList<NameValuePair>();
String dept_response = null;
try {
dept_response = CustomHttpClient.executeHttpPost("http://10.0.2.2/android_db/ppf4_dept.php",response_Parameters);
String dept_result = dept_response.toString();
JSONArray jArray = new JSONArray(dept_result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
// String name=json_data.getString("dept");
categories.add(json_data.getString("dept"));}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, categories);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner1.setAdapter(dataAdapter);
String jdepartment = spinner1.getSelectedItem().toString();
final Spinner spinner2 = (Spinner) view.findViewById(R.id.Spinner2);
// Spinner click listener
spinner2.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> categories2 = new ArrayList<String>();
categories2.add("teaching");
categories2.add("lab");
categories2.add("asst proff");
categories2.add("lab");
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, categories2);
// Drop down layout style - list view with radio button
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner2.setAdapter(dataAdapter2);
String jrole = spinner2.getSelectedItem().toString();
//spinner3
final Spinner spinner3 = (Spinner) view.findViewById(R.id.Spinner3);
// Spinner click listener
spinner3.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> categories3 = new ArrayList<String>();
categories3.add("teacheris");
categories3.add("hodis");
categories3.add("acctis");
categories3.add("ftyftyf");
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, categories3);
// Drop down layout style - list view with radio button
dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner3.setAdapter(dataAdapter3);
String jdesignation = spinner3.getSelectedItem().toString();
jname = (EditText) view.findViewById(R.id.editText1);//name
jemail = (EditText) view.findViewById(R.id.editText5);//email
jinterest = (EditText) view.findViewById(R.id.editText6);//technological interest
submit = (Button) view.findViewById(R.id.submitbutton);
tv = (TextView) view.findViewById(R.id.textView9);
submit.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("name",
jname.getText().toString()));
postParameters.add(new BasicNameValuePair("department",
spinner1.getSelectedItem().toString()));
postParameters.add(new BasicNameValuePair("role",
spinner2.getSelectedItem().toString()));
postParameters.add(new BasicNameValuePair("designation",
spinner3.getSelectedItem().toString()));
postParameters.add(new BasicNameValuePair("email",
jemail.getText().toString()));
postParameters.add(new BasicNameValuePair("interest",
jinterest.getText().toString()));
String response = null;
// call executeHttpPost method passing necessary parameters
try {
response = CustomHttpClient.executeHttpPost("http://10.0.2.2/android_db/ppf4.php",postParameters);
//response = CustomHttpClient.executeHttpPost("http://webdev1.tifr.res.in/~PFproj/public_html/pplf1/pplf7.php",postParameters);
// store the result returned by PHP script that runs MySQL query
String result = response.toString();
Context main =getActivity();
Intent intent = new Intent(FragmentTab1.this.getActivity(), AdvancedSearch.class);
intent.putExtra("newresult", result);
startActivity(intent);
}
catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
}
}
);
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
setUserVisibleHint(true);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}