私のフラグメントの名前はlocate_map
です。私は文字列配列を宣言し、それをString ArrayListとして変換しました。 ArrayListをlocate_updatedstatus
という別のフラグメントに渡してください。私は自分のArrayListを通過すると同時に、locate_updatedstatus
にlocate_map
から切り替えるとbulding時にエラーがない私のlocate_updatedstatus
フラグメント間のアンドロイド渡し配列が機能しません
上のリストビューとして、それを表示していましたID to_update_status
を持っている私のlocate_map
フラグメント上のボタンを持っています。しかし私がlocate_updatedstatus
に移動するたびに、アプリがクラッシュします。
主な活動これは私がフラグメント間を切り替える方法です。私は、コンテナフラグメント
public void onSelectFragment(View v){
Fragment newFragment;
if(v == findViewById(R.id.to_update_status)){
newFragment = new locate_updatedstatus();
}
else{
newFragment = new locate_login();
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
locate_mapフラグメント
public class locate_map extends Fragment implements Serializable{
public locate_map() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_locate_map, container, false);
String[] updatedArr = {"display this", "also this"};
List<String> stringList = new ArrayList<String>(Arrays.asList(updatedArr));
Bundle bundle = new Bundle();
bundle.putSerializable("key", (Serializable) stringList);
return rootView;
}
}
locate_mapのXMLボタン
<Button
android:id="@+id/to_update_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/check_images"
android:layout_marginTop="15dp"
android:text="Update Status"
android:width="340dp"
android:height="70dp"
android:onClick="onSelectFragment"
/>
locate_updatedstatusフラグメント
public class locate_updatedstatus extends Fragment implements Serializable {
public locate_updatedstatus() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_locate_updatedstatus, container, false);
ArrayList<String> stringList = (ArrayList<String>)getArguments().getSerializable("key");
ListView listSource = (ListView) rootView.findViewById(R.id.updates);
ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String>(
getActivity(),
android.R.layout.simple_list_item_1,
stringList
);
listSource.setAdapter(listViewAdapter);
return rootView; // Inflate the layout for this fragment
}
}
ロカとナビゲーションドロワーアクティビティを使用していますte_updatedstatus xml listview
<ListView
android:layout_width="match_parent"
android:layout_height="350dp"
android:layout_marginTop="60dp"
android:id="@+id/updates"
android:listSelector="@android:color/transparent"
/>
答えが詳細であれば、私は感謝します。私はアンドロイドプログラミングの初心者で私と一緒に耐えてください。
logcatエラー
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)' on a null object reference at com.example.makati.sidebar.locate_updatedstatus.onCreateView(locate_updatedstatus.java:31)
データを取得logcatの誤差は何ですか? – chirag90
私は今質問をlogcatのerorrで更新しました –