1
リストビュー上のアイテムをクリックするとフラグメントを表示します。リストビューはメインアクティビティにあります。問題は、フラグメントがアクティビティーリストビューに表示されていることです。何が問題なのか分かりますか?フラグメントがアクティビティ上に表示されています
主な活動:
public class MainActivity extends AppCompatActivity {
ArrayList<String> test = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listView);
test.add("item 1");
test.add("item 2");
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, test);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
EditorFragment editorFragment = new EditorFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, editorFragment).commit();
}
});
}
**activity main xml**
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="0dp"
android:layout_height="0dp"
tools:layout_editor_absoluteY="8dp"
tools:layout_editor_absoluteX="8dp" />
<ListView
android:id="@+id/listView"
android:layout_width="368dp"
android:layout_height="495dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
</android.support.constraint.ConstraintLayout>
断片エディタXML
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/editor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|left"
android:inputType="text"
android:hint="@string/hint"/>
EditorFragment
public class EditorFragment extends Fragment {
private EditText editor=null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View result=inflater.inflate(R.layout.fragment_editor, container, false);
editor=(EditText) (result.findViewById(R.id.editor));
return result;
}
}
フラグメントでremoveAllViewsメソッドを使用しましたが、アイテムがクリックされたときには機能しません。フラグメントは表示されません。
public class EditorFragment extends Fragment {
private EditText editor=null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View result=inflater.inflate(R.layout.fragment_editor, container, false);
if(container != null)
{
container.removeAllViews();
}
editor=(EditText) (result.findViewById(R.id.editor));
return result;
}
}
アクティビティを表示するのではなく、何をしたいですか?ダイアログとして表示しますか?または何? – zihadrizkyef