-1

我正在創建一個簡單的應用程序,允許用戶登錄,然後顯示包含三個選項卡的操作欄,每個選項卡都包含使用列表視圖的列表。如何使用具有片段的操作欄選項卡創建列表視圖?

問題是,我不知道如何建立一個片段內的列表視圖任何人都可以幫我?????

AndroidNavigationTabsActivity

package com.exercise.AndroidNavigationTabs; 

import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 

public class AndroidNavigationTabsActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final ActionBar actionBar = getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     Tab tabA = actionBar.newTab(); 
     tabA.setText("Tab A"); 
     tabA.setTabListener(new TabListener<MyFragmentA>(this, "Tag A", MyFragmentA.class)); 
     actionBar.addTab(tabA); 

     Tab tabB = actionBar.newTab(); 
     tabB.setText("Tab B"); 
     tabB.setTabListener(new TabListener<MyFragmentB>(this, "Tag B", MyFragmentB.class)); 
     actionBar.addTab(tabB); 

     Tab tabC = actionBar.newTab(); 
     tabC.setText("Tab C"); 
     tabC.setTabListener(new TabListener<MyFragmentC>(this, "Tag C", MyFragmentC.class)); 
     actionBar.addTab(tabC); 

     if (savedInstanceState != null) { 
      int savedIndex = savedInstanceState.getInt("SAVED_INDEX"); 
      getActionBar().setSelectedNavigationItem(savedIndex); 
     } 

    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 
     outState.putInt("SAVED_INDEX", getActionBar().getSelectedNavigationIndex()); 
    } 

    public static class TabListener<T extends Fragment> 
     implements ActionBar.TabListener{ 

     private final Activity myActivity; 
     private final String myTag; 
     private final Class<T> myClass; 

     public TabListener(Activity activity, String tag, Class<T> cls) { 
      myActivity = activity; 
      myTag = tag; 
      myClass = cls; 
     } 

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

      Fragment myFragment = myActivity.getFragmentManager().findFragmentByTag(myTag); 

      // Check if the fragment is already initialized 
      if (myFragment == null) { 
       // If not, instantiate and add it to the activity 
       myFragment = Fragment.instantiate(myActivity, myClass.getName()); 
       ft.add(android.R.id.content, myFragment, myTag); 
      } else { 
       // If it exists, simply attach it in order to show it 
       ft.attach(myFragment); 
      } 

     } 

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

      Fragment myFragment = myActivity.getFragmentManager().findFragmentByTag(myTag); 

      if (myFragment != null) { 
       // Detach the fragment, because another one is being attached 
       ft.detach(myFragment); 
      } 

     } 

     @Override 
     public void onTabReselected(Tab tab, FragmentTransaction ft) { 
      // TODO Auto-generated method stub 

     } 

    } 
} 

我碰到一個問題,在塔巴後,我改變了這一切正在伸出片段成爲extanding活動

MyFragmentA

package com.exercise.AndroidNavigationTabs; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

public class MyFragmentA extends Activity implements OnItemClickListener { 

    ListView dalil_khadamet_list; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_a); 
     dalil_khadamet_list = (ListView) findViewById(R.id.khadamet_list); 

     String[] values = new String[] { "وظائف", "عقارات", "سيارات", "تجارة", 
       "ثقافة" }; 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, android.R.id.text1, values); 

     dalil_khadamet_list.setAdapter(adapter); 

     dalil_khadamet_list.setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // TODO Auto-generated method stub 

      // ListView Clicked item index 
     int itemPosition= position; 

     // ListView Clicked item value 
     String itemValue = (String) dalil_khadamet_list.getItemAtPosition(position); 

     // Show Alert 
     Toast.makeText(getApplicationContext(), 
      "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
      .show(); 


    } 

    /* 
    * @Override public View onCreateView(LayoutInflater inflater, ViewGroup 
    * container, Bundle savedInstanceState) { View myFragmentView = 
    * inflater.inflate(R.layout.fragment_a, container, false); return 
    * myFragmentView; } 
    */ 

} 

fragment_a.xml

的MyfragmentA
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="It's Fragment A" /> 

    <ListView 
     android:id="@+id/khadamet_list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 

回答

0

您應該延伸片段,不活動

public class MyFragmentA extends Fragment implements OnItemClickListener { 

    ListView dalil_khadamet_list; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_a, container, false); 

     dalil_khadamet_list = (ListView) view.findViewById(R.id.khadamet_list); 

     String[] values = new String[] { "وظائف", "عقارات", "سيارات", "تجارة", 
       "ثقافة" }; 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, android.R.id.text1, values); 

     dalil_khadamet_list.setAdapter(adapter); 

     dalil_khadamet_list.setOnItemClickListener(getActivity()); 

     return view; 
    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // TODO Auto-generated method stub 

      // ListView Clicked item index 
     int itemPosition= position; 

     // ListView Clicked item value 
     String itemValue = (String) dalil_khadamet_list.getItemAtPosition(position); 

     // Show Alert 
     Toast.makeText(getApplicationContext(), 
      "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
      .show(); 


    } 

} 
相關問題