2014-01-22 4 views
2

хочу использовать вкладку хоста, чтобы сделать мою страницу более гибкой. Вот мой случай например. У меня есть форма информации для студентов с достаточно прокручиваемыми элементами управления, поэтому вы хотите разделить страницу на вкладках.Как использовать tabhost для Single activity в android?

  1. Tab 1 будет иметь студенческие личные данные, такие как имя возраста DOB и т.д.
  2. Tab 2 будет иметь школьников детали, такие как школы нм, станд, предметы
  3. Tab 3 будет он совместно внешкольной деятельности такие детали, как достижения, интересы-увлечения

ранее это было только одной страницы, имеющие код в одной деятельности и отправить нажатие кнопки будет сохранить страницу в одной таблице БД с именем studentTbl.sqlite

теперь хотят использовать 3 вкладки, каждая со следующей кнопкой и конечной вкладкой будет иметь кнопку отправки, которая сохранит все 3 вкладки данных на save click in studentTbl.sqlite

так как я могу реализовать вкладку хоста для такого вида активности одной страницы для сохранения одной таблицы?

+0

сделать вам нужно принять глобальную переменную для каждого класса, а затем в событии click следующей кнопки получить значение вашего текстового поля и сохранить его в глобальной переменной, а затем, наконец, при нажатии кнопки кнопки отправить его в базу данных. – InnocentKiller

+0

, но должен ли я сделать другой вызов активности для каждой вкладки или можно сделать в одном действии? –

+3

Вы можете сделать это одним действием и использовать фрагменты для просмотров. – Luis

ответ

2

Создайте новый объект Const.java и добавьте ниже код.

public class Const { 
    public static String name; 
    public static String age; 
    public static String dob; 
    public static String schoolname; 
    public static String std; 
    public static String sub; 
      ... 
      ... 
} 

Теперь внутри первых действий следующая кнопка используется для использования события ниже кода.

next.setOnClickListener(new ImageView.OnClickListener() 
    { 
     public void onClick(View v) 
     { 

      Code.name= editTextName.getText().toString().trim(); 
      Code.age= editTextAge.getText().toString().trim(); 
        ....... 
        ....... 
     } 
    }); 

, а затем то же самое для всех деятельности (Второй деятельности), а также вы можете добавить больше экрана, если вы хотите добавить затем на кнопке отправки последнего экрана получить это все глобальное переменное значение и передать его в базу данных.

Надеюсь, это поможет вам. И дайте мне знать, по-прежнему, если у вас есть какие-либо проблемы ...

+0

спасибо .. попробуем и примем ответ –

0

этот пример кода может помочь вам ...

public class SecondActivity extends FragmentActivity implements 
     ActionBar.TabListener { 

    private static final int CONTENT_ID = 0xFEED; 

    private Fragment tab1Fragment; 
    private Fragment tab2Fragment; 
    private Fragment tab3Fragment; 

    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     setContentView(getContentView()); 
     init(); 
    } 

    private void init() { 
     tab1Fragment = new Tab1Fragment(); 
     tab2Fragment = new Tab2Fragment(); 
     tab3Fragment = new Tab3Fragment(); 

     initActionBar(); 
    } 

    private void initActionBar() { 
     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME 
       | ActionBar.DISPLAY_SHOW_TITLE); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionBar.addTab(actionBar.newTab().setText("Tab1") 
       .setTabListener(this)); 
     actionBar.addTab(actionBar.newTab().setText("Tab2") 
       .setTabListener(this)); 
     actionBar.addTab(actionBar.newTab().setText("Tab3") 
       .setTabListener(this)); 
    } 

    private View getContentView() { 
     FrameLayout frameLayout = new FrameLayout(this); 
     frameLayout.setId(CONTENT_ID); 
     return frameLayout; 
    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     switch (tab.getPosition()) { 
     case 0: 
      ft.replace(CONTENT_ID, tab1Fragment); 
      break; 
     case 1: 
      ft.replace(CONTENT_ID, tab2Fragment); 
      break; 
     case 2: 
      ft.replace(CONTENT_ID, tab3Fragment); 
      break; 

     default: 
      break; 
     } 
    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 

    } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 

    } 

    public static class StudentInfo { 
     public static String NAME; 
     public static String LOCATION; 
     public static String SCHOOL_NAME; 
     public static String COLLEGE_NAME; 
     public static String COMPANY; 
     public static String JOB; 
    } 

    public static abstract class BaseFragment extends Fragment implements 
      View.OnClickListener { 

     protected EditText editText1; 
     protected EditText editText2; 
     protected Button nextButton; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      super.onCreateView(inflater, container, savedInstanceState); 
      return inflater.inflate(R.layout.second_activity_layout, container, 
        false); 
     } 

     @Override 
     public void onViewCreated(View view, Bundle savedInstanceState) { 
      super.onViewCreated(view, savedInstanceState); 
      editText1 = (EditText) view.findViewById(R.id.editText1); 
      editText2 = (EditText) view.findViewById(R.id.editText2); 
      nextButton = (Button) view.findViewById(R.id.next); 
      nextButton.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View view) { 
      loadValues(); 
     } 

     protected abstract void loadValues(); 
    } 

    public static class Tab1Fragment extends BaseFragment { 

     @Override 
     public void onViewCreated(View view, Bundle savedInstanceState) { 
      super.onViewCreated(view, savedInstanceState); 
      TextView textView = (TextView) view.findViewById(R.id.textView1); 
      textView.setText("Name"); 
      textView = (TextView) view.findViewById(R.id.textView2); 
      textView.setText("Location"); 
     } 

     @Override 
     protected void loadValues() { 
      StudentInfo.NAME = editText1.getText().toString(); 
      StudentInfo.LOCATION = editText2.getText().toString(); 
     } 
    } 

    public static class Tab2Fragment extends BaseFragment { 

     @Override 
     public void onViewCreated(View view, Bundle savedInstanceState) { 
      super.onViewCreated(view, savedInstanceState); 
      TextView textView = (TextView) view.findViewById(R.id.textView1); 
      textView.setText("School"); 
      textView = (TextView) view.findViewById(R.id.textView2); 
      textView.setText("College"); 
     } 

     @Override 
     protected void loadValues() { 
      StudentInfo.SCHOOL_NAME = editText1.getText().toString(); 
      StudentInfo.COLLEGE_NAME = editText2.getText().toString(); 
     } 
    } 

    public static class Tab3Fragment extends BaseFragment { 

     @Override 
     public void onViewCreated(View view, Bundle savedInstanceState) { 
      super.onViewCreated(view, savedInstanceState); 
      TextView textView = (TextView) view.findViewById(R.id.textView1); 
      textView.setText("Company"); 
      textView = (TextView) view.findViewById(R.id.textView2); 
      textView.setText("Job"); 
     } 

     @Override 
     protected void loadValues() { 
      StudentInfo.COMPANY = editText1.getText().toString(); 
      StudentInfo.JOB = editText2.getText().toString(); 
     } 
    } 
} 

и это second_activity_layout.xml ...

<?xml version="1.0" encoding="utf-8"?> 
<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" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dp" 
      android:text="Label" 
      tools:ignore="HardcodedText" /> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="text" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/linearLayout1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="15dp" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dp" 
      android:text="Label" 
      tools:ignore="HardcodedText" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="text" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/next" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/linearLayout2" 
     android:layout_marginRight="25dp" 
     android:layout_marginTop="15dp" 
     android:text="Next" 
     tools:ignore="HardcodedText" /> 

</RelativeLayout> 
Смежные вопросы