2014-02-24 35 views
1

我有一個基本上只是一個gridview的應用程序,你點擊其中一個網格並加載一條消息。添加列表/ GridView到片段

我在找更新應用程序。我想添加一個菜單,並將其更改爲碎片(一個用於菜單(ListView),另一個用於內容(根據選擇的菜單選項,ListView或GridView))。

是否有可能保留我當前的GridView代碼併爲Menu/Main創建新類(包括它們的佈局),然後使用我當前的GridView代碼填充Content部分,然後單擊相關的菜單選項?

我已經看了幾個教程,但我沒有太多的運氣把它放在一起到目前爲止。我沒有太多的期待被告知該怎麼做,只是尋找一些建議和幫助(鏈接等),所以我可以學習,並獲得我的應用程序更新

回答

1

這是可能的,它不是太難。同樣的事情我以前做過。首先您將在您的項目包中創建一個Java類和xml文件。聽到是一個例子,我認爲Thana是你的java類和activity_tha是xml文件。

public class Thana extends Fragment implements OnItemClickListener{ 
// your global variable goes hear. 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)   
    {  
    View rootView = inflater.inflate(R.layout.activity_tha, container, false); 

    // put you all code from old Activity class's onCreate() method . 
    // be careful this Fragmetn's onCreateView() returns a view object so look this 

    TextView headingThana = (TextView)rootView.findViewById(R.id.heading_thana); 
    // you always need a view reference to making any object of Widget from xml file. 

    return rootView; 
} 
// and other code goes hear as like as your old class 

}

聽到的是另一個重要的一點,您將無法得到您的應用程序參照從Context context;this使用,所以你需要通過getActivity()方法全部更換。 像菜單項所取代getActivity();

listView.setAdapter(new CustomListViewAdapter(getActivity(), thanaInfoList, thanaMobileNumber)); 

listView.setAdapter(new CustomListViewAdapter(this, thanaInfoList, thanaMobileNumber)); 

this你需要在res /菜單文件夾一個XML文件。這樣

<?xml version="1.0" encoding="utf-8"?> 

<item android:id="@+id/action_searchss" 
    android:title="action_searcheee" 
    android:showAsAction="always" 
    android:icon="@drawable/ic_launcher" 
    android:orderInCategory="1" 
    > 

</item> 

<item android:id="@+id/action_search" 
    android:title="action_search" 
    android:showAsAction="ifRoom" 
    android:icon="@drawable/ic_launcher" 
    android:orderInCategory="2" 
    > 

</item> 

,現在在你的public boolean onCreateOptionsMenu(Menu menu)方法寫這個inflater.inflate(R.menu.activity_main_actions, menu);activity_main_actions是在菜單文件夾新創建的XML文件..........菜單選擇你可以重寫此方法

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // your code goes hear may be you can use swith case . its better 
} 

這只是一個想法沒有確切的答案。謝謝