在上一篇博客,Android-fragment簡介-fragment的簡單使用,介紹了簡單的使用;html
package liudeli.activity.fragment; import android.app.Activity; import android.os.Bundle; import liudeli.activity.R; public class MyTestFragmentActivity2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_fragment2); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- android:id="@+id/fragment" 必需要指定好ID,不然運行會報錯 class="liudeli.activity.fragment.MyFragment" 必需要指定class,不然無效果 --> <fragment android:id="@+id/fragment" class="liudeli.activity.fragment.MyFragment2" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
package liudeli.activity.fragment; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast; import liudeli.activity.R; public class MyFragment2 extends Fragment { /** * 建立View * @param inflater 佈局加載器 * @param container * @param savedInstanceState 臨時保存數據用的Bundle 和 Activity-onCreate方法同樣 * @return */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); // 使用佈局加載器加載 View view = inflater.inflate(R.layout.fragment_layout, null); return view; } private ListView listView; /** * 此方法表明View建立已經完成✅ * @param view 上面方法建立View成功後返回過來的View * @param savedInstanceState 臨時保存數據用的Bundle 和 Activity-onCreate方法同樣 */ @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); listView = view.findViewById(R.id.listview); String[] strings = new String[]{"測試數據一", "測試數據二", "測試數據三"}; // 初始化適配器數據 final ListAdapter listAdapter = new ArrayAdapter(getActivity(), // 在Fragment不能使用this android.R.layout.simple_list_item_1, android.R.id.text1, strings); listView.setAdapter(listAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String itmeValue = (String) listAdapter.getItem(position); Toast.makeText(getActivity(), itmeValue, Toast.LENGTH_SHORT).show(); } }); listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(getActivity(), "長按Item條目", Toast.LENGTH_SHORT).show(); return true; } }); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" /> </LinearLayout>
效果:android