Я использую ListView
для отображения TextViews
. Мое приложение выглядит следующим образом:Видимость GONE в ListView
Когда я нажимаю на слово исчезает:
Но ListView
все еще держит пустую строку. Я хочу, чтобы мое приложение, чтобы выглядеть после щелчка:
Кто-нибудь знает, почему пустая строка остается на месте. Почему он не полностью удаляется? Я использую setVisibility(View.GONE)
, чтобы исчезнуть TextViews
.
Когда я просто использую с LinearLayouts
и устанавливаю visibilty в GONE
, вся строка исчезает, а строки под автоматически корректируются соответственно.
EDIT: Я отредактировал код, который теперь включает 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)
адаптер.remove (адаптор.getItem (позиция)) сбой моей заявки – user2456977
С какой ошибкой? – danb
Я отредактировал свое оригинальное сообщение с журналом ошибок и методом adapter.remove. Пожалуйста, взгляните и сообщите мне, можете ли вы помочь. Спасибо за вашу помощь до сих пор. – user2456977