How to remove the seperator line in footerLayout
? I have a footerLayout
below the listView
, used to display the totalAmount as shown below. If I click the seperator line in footerLayout
, my app crashed.
My MainActivity
AllAdapter obj = new AllAdapter(getApplication(), search, listview,imageView,text,button);
footerLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.under_listview, null);
totalAmount = (TextView) footerLayout.findViewById(R.id.amount);
LogCat error
java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
at java.util.ArrayList.get(ArrayList.java:304)
at com.example.tony.monthlyexpenses.adapter.AllAdapter.getItem(AllAdapter.java:61)
at com.example.tony.monthlyexpenses.QuickExpenses$1.onItemClick(QuickExpenses.java:88)
at android.widget.AdapterView.performItemClick(AdapterView.java:301)
The error pointed to listView
onClickListener
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View view, final int position, long id) {
mClickedPosition = position;
Expenses o = (Expenses) obj.getItem(position);
String day = o.getDate();
}
});
AllAdapter
public Expenses getItem(int position) {
return search.get(position);
}
The footerLayout is supposed to be displayed outside the listView, not inside. How can I get rid of this ?
I also have activity_main.xml
, AllAdapter
class, all_adapter.xml
for ListView
and also under_listview.xml
for the footerLayout
.
activity_main
AllAdapter
under_listview
How to move the footerLayout out from the ListView ?
I add android:footerpidersEnabled="false"
now become like this
But still clickable !!!
谁知道问题出在哪?
footerLayout
被按时如何不出现灰色?
adalah masalah yang sangat mudah tetapi terdedah kepada ralat Selepas menambah
footer
, kuantitilistview item
anda ialah3
, tetapiadapter
daripadaviewcount
sebenarnya tidak menjadi3
, jadi Apabila. anda klik pengaki,obj.getItem(2)
dilaksanakan, yang mesti merupakan tatasusunan di luar sempadan.对于添加了header或footer的listview
, cara yang betul untuk mendapatkan semula item hendaklahheader或footer属于AdapterView的子view
,listView.getAdapter().getItem(position);
boleh memastikan anda tidak melepasi sempadan apabila mengambil kedudukan 2, dan kemudian membuat penghakiman batal objek.Anda tidak boleh menggunakan setOnItemClickListener sebagai acara klik footview saya rasa anda harus menetapkannya secara berasingan
Sebagai contoh, footview.setonClickListener(OnClickListener baharu{});
Subskrip tatasusunan anda di luar had saiz tatasusunan anda ialah 2, jadi subskrip yang sepadan hanya boleh 0 dan 1, tetapi anda menggunakan 2 apabila menggunakannya. Ralat menunjukkan bahawa anda mempunyai indeks yang tidak sah baris 61 dan 88 sendiri untuk melihat sama ada terdapat mana-mana tempat di mana indeks adalah 2 dipanggil
Untuk mengalihkan
footerLayout
keluar daripadalistView
ditulis sebagailistview.addFooterView(footerLayout, null, false);