私は3つのタブを持つ固定タブレイアウトを持っています。私はArrayList
を使用してtab2のリストビューに項目を追加するためにtab1にボタンを入れようとしていますが、両方ともFragment
を拡張しています。以下のコードは、アクティビティがアクティビティを拡張する場合にのみ機能します。誰かが問題の修正に対する答えを教えてくれますか? arraylistにアイテムを追加するボタンを他のフラグメントアクティビティのリストビューに追加するにはどうすればいいですか
MainActivty
public class MainActivity extends Activity {
private ListView LView;
ArrayList <String> arrayList = new ArrayList<String>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LView = (ListView) findViewById(R.id.listview);
}
public void sendToListView(View view) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList); //Sets the adapter to hold the List View
LView.setAdapter(adapter); //Adds to the List View
arrayList.add("Thursday");
}
}
activity_main
<?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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add"
android:onClick="sendToListView"
android:id="@+id/button"/>
</RelativeLayout>
このMainActivityはフラグメントを拡張し、私は
public class MainActivity extends Fragment implements View.OnClickListener {
private ListView LView;
ArrayList <String> arrayList = new ArrayList<String>();
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_main,
container, false);
LView = (ListView) view.findViewById(R.id.listview);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList); //Here is the error
LView.setAdapter(adapter); //Adds to the List View
arrayList.add("Thursday");
break;
}
}
}
どのように私は、フラグメントのために、この作業を取得することができ、そしてどのように私はこの操作が可能HVEができ、同じ動作を実現しようとするとエラーが発生しました他のフラグメントアクティビティタブに送信され、SharedPreferencesに保存されました
:あなたがここにフラグメントを使用する必要がある場合
しかし、も、あなたは正しくフラグメントを取り付けたことを考えると、あなたはそれを右のレイアウトを使用していることは、あなたはまだいくつかの変更を行う必要がありあなたと共有する何か、私はyoutube https://www.youtube.com/watch?v=D2mMwWiZBmEのこのビデオのようにListFragmentを拡張することでこれをやってみました。それは新しいプロジェクトでは独立して動作しますが、それは動作しません。私のカスタムPageAdapterは、私がListFragmentで1つのアクティビティを拡張し、他のものをFragmentで拡張するとエラーが表示されます。 ListFragmentですべてを拡張しようとするとクラッシュします。この問題を解決するためのアイデアはありますか? – masterplox