나는 ListView
을 사용하여 TextViews
을 표시합니다. 내 응용 프로그램은 다음과 같습니다 : 나는 단어를 클릭하면Visibility GONE in ListView
은 사라 :
그러나 ListView
여전히 빈 행을 유지합니다. 나는 내 응용 프로그램을 클릭 한 후 다음과 같이 할 : 빈 행이 자리에 유지하는 이유
TextViews
을 사라지게하려면
setVisibility(View.GONE)
을 사용합니다.
을 LinearLayouts
으로 간단히 설정하고 가시성을 GONE
으로 설정하면 전체 행이 사라지고 그에 따라 자동으로 아래 행이 자동으로 조정됩니다.
편집 : 코드를 편집하여 adapter.remove(adapter.getItem(position))
을 포함하게되었습니다. 이로 인해 내 애플리케이션이 중단됩니다. 오류 로그와 편집 된 코드를 추가했습니다. 도와주세요.
편집 코드 :
package com.example.listview;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
populateListView();
registerClickCallback();
}
private void populateListView() {
//Create list of items
String[] myItems = {"Blue", "Green","Purple","Red"};
//Build Adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.items, myItems);
//Configure the list view
ListView list = (ListView) findViewById(R.id.listView1);
list.setAdapter(adapter);
}
private void registerClickCallback() {
ListView list = (ListView) findViewById(R.id.listView1);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textview = (TextView) view;
textview.setVisibility(View.GONE);
adapter.remove(adapter.getItem(position));
}
});
}
}
오류 로그 : 게이브 언급 당신이 보여줄 필요가/경우, 다음을 숨기기 :
12-19 12:04:57.994: E/AndroidRuntime(23120): FATAL EXCEPTION: main
12-19 12:04:57.994: E/AndroidRuntime(23120): Process: com.example.listview, PID: 23120
12-19 12:04:57.994: E/AndroidRuntime(23120): java.lang.UnsupportedOperationException
12-19 12:04:57.994: E/AndroidRuntime(23120): at java.util.AbstractList.remove(AbstractList.java:638)
12-19 12:04:57.994: E/AndroidRuntime(23120): at java.util.AbstractList$SimpleListIterator.remove(AbstractList.java:75)
12-19 12:04:57.994: E/AndroidRuntime(23120): at java.util.AbstractCollection.remove(AbstractCollection.java:229)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.widget.ArrayAdapter.remove(ArrayAdapter.java:244)
12-19 12:04:57.994: E/AndroidRuntime(23120): at com.example.listview.MainActivity$1.onItemClick(MainActivity.java:50)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2911)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.widget.AbsListView$3.run(AbsListView.java:3645)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.os.Handler.handleCallback(Handler.java:733)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.os.Handler.dispatchMessage(Handler.java:95)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.os.Looper.loop(Looper.java:136)
12-19 12:04:57.994: E/AndroidRuntime(23120): at android.app.ActivityThread.main(ActivityThread.java:5146)
12-19 12:04:57.994: E/AndroidRuntime(23120): at java.lang.reflect.Method.invokeNative(Native Method)
12-19 12:04:57.994: E/AndroidRuntime(23120): at java.lang.reflect.Method.invoke(Method.java:515)
12-19 12:04:57.994: E/AndroidRuntime(23120): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
12-19 12:04:57.994: E/AndroidRuntime(23120): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
12-19 12:04:57.994: E/AndroidRuntime(23120): at dalvik.system.NativeStart.main(Native Method)
adapter.remove (adapter.getItem (position)) 내 응용 프로그램이 충돌합니다. – user2456977
어떤 오류가 있습니까? – danb
오류 로그와 adapter.remove 메소드로 원래 게시물을 편집했습니다. 보세요. 도와 주시면 알려주세요. 지금까지 도와 줘서 고마워. – user2456977