Я использую this как проведите по удалению. но у меня возникла проблема с реализацией только элемента меню удаления из списка.Проведите по удалению Не работает из верхнего элемента списка, но из последнего элемента списка.
То, что я делаю, создает только один элемент удаления. Я действительно не хочу использовать какой-либо другой элемент, такой как Open, как показано в демо.
вот мой дизайн
<?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:background="#dadada">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/segmented_buttons">
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:orientation="vertical">
<!--<ScrollView-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_gravity="center"-->
<!--android:gravity="center"-->
<!--android:clickable="false">-->
<TextView
android:id="@+id/swipeRefreshLayout_emptyView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center|center_vertical"
android:enabled="false"
android:gravity="center"
android:visibility="gone" />
<com.baoyz.swipemenulistview.SwipeMenuListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:clipChildren="false"
android:divider="@android:color/transparent"
android:dividerHeight="5.0sp" />
<!--</ScrollView>-->
</FrameLayout>
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
</RelativeLayout>
и вот как я создаю мое меню в моем фрагменте
SwipeMenuCreator creator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
// create "delete" item
SwipeMenuItem deleteItem = new SwipeMenuItem(
getActivity());
// set item background
deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
0x3F, 0x25)));
// set item width
deleteItem.setWidth(dp2px(90));
// set a icon
deleteItem.setIcon(R.drawable.ic_delete);
// add to menu
menu.addMenuItem(deleteItem);
}
};
вот как я устанавливаю создатель
// set creator
mListView.setMenuCreator(creator);
Моя проблема У меня есть несколько проблем, связанных с удалением, как уже упоминалось
- Когда у меня слишком много данных в списке, говорим, что количество строк 10 и нужно прокрутить вниз, опция удаления работы как очарование даже из первой строки списка.
- Когда в списке есть меньший элемент или я продолжаю удалять элементы снизу, я имею в виду последнюю строку, когда есть меньше предметов, которые не нужно прокручивать вниз, не удаляет гладко, это занимает много раз, чтобы обновить список, или открыть и закрыть снова меню справа налево, многократно нажимает на меню удаления, а затем удаляет некоторые из них, когда слишком много попыток.
- Я не знаю, в чем проблема, но когда я сделал два меню, например «Открыть» и «Удалить», как показано в демо, я сделал как открытую, так и удаленную кнопку удаления, так что в случае «0» и «Случай 1», Я написал код удаления, затем я заметил, что удаление работает каждый раз, когда я касаюсь открытого, но снова, когда я касаюсь его удалением, несколько раз удаляет элемент или какое-то время, которое требуется для многих попыток.
Что может быть проблемой? Любая догадка? Есть ли какая-нибудь работа?
И да Наверняка, когда я касаюсь меню «Удалить», он дает мне журнал, смотри вниз внизу. Он показывает мне это в журнале, когда я прикасаюсь, чтобы удалить и удалить, на самом деле не работает, но когда он начало работы этого сообщения в журнале никогда не появляется.
D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
Редактировать Один
Вот весь мой код адаптера:
public class SwipeListOfferAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private ArrayList<OfferStatusData> offerList;
OfferStatusData offerStatusData;
public SwipeListOfferAdapter(Activity activity, List<OfferStatusData> offerList) {
this.activity = activity;
this.offerList = (ArrayList)offerList;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// bgColors = activity.getApplicationContext().getResources().getStringArray(R.array.movie_serial_bg);
}
@Override
public int getCount() {
return offerList.size();
}
@Override
public Object getItem(int location) {
return offerList.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder ;
if (convertView == null) {
convertView = inflater.inflate(R.layout.row_offer_status, null);
holder = new ViewHolder();
// holder.tvCustomerName = (TextView) convertView.findViewById(R.id.tv_row_customer_name);
holder.tvOfferName = (TextView) convertView.findViewById(R.id.row_offer_name);
// holder.tvEmail = (TextView) convertView.findViewById(R.id.row_email);
holder.tvPhoneNumber = (TextView) convertView.findViewById(R.id.row_phone_number);
holder.tvAddress = (TextView) convertView.findViewById(R.id.row_address);
holder.tvTmcBrand = (TextView) convertView.findViewById(R.id.row_tmc_brand);
holder.tvStartEndTime = (TextView) convertView.findViewById(R.id.row_offer_time);
holder.tvNoOfPerson = (TextView) convertView.findViewById(R.id.tv_row_total_person);
holder.tvNoOfAcceptors = (TextView) convertView.findViewById(R.id.tv_row_total_acceptors);
holder.tvMonth = (TextView) convertView.findViewById(R.id.tv_row_month);
holder.tvDay = (TextView) convertView.findViewById(R.id.tv_row_day);
// holder.tvCustomerName = (TextView) convertView.findViewById(R.id.tv_row_customer_name);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
if(offerList.size()>0){
offerStatusData = (OfferStatusData)offerList.get(position);
// holder.tvCustomerName.setText(offerStatusData.getName());
holder.tvOfferName.setText(offerStatusData.getOffer_name());
// holder.tvEmail.setText(offerStatusData.getEmail());
holder.tvPhoneNumber.setText(offerStatusData.getPhone_number());
holder.tvAddress.setText(offerStatusData.getAddress());
holder.tvTmcBrand.setText(offerStatusData.getTmc_brand());
holder.tvStartEndTime.setText(offerStatusData.getStart_time()+"-"+offerStatusData.getEnd_time());
holder.tvNoOfPerson.setText(offerStatusData.getNo_of_person());
holder.tvNoOfPerson.setTextColor(Color.parseColor("#F66D0D"));
holder.tvNoOfAcceptors.setText(offerStatusData.getCurrent_acceptors()+"/"+offerStatusData.getNo_of_person());
holder.tvNoOfAcceptors.setTextColor(Color.parseColor("#2B5BD2"));
// holder.tvMonth.setText("july");
// holder.tvDay.setText("29");
String dateFromService = offerStatusData.getDate();
String[] monthFromService = dateFromService.split("-");
Log.d("date split", dateFromService.toString());
holder.tvDay.setText(monthFromService[2].toString());
holder.tvDay.setTextColor(Color.parseColor("#57902B"));
holder.tvMonth.setText(getMonth(Integer.parseInt(monthFromService[1])));
holder.tvMonth.setTextColor(Color.parseColor("#57902B"));
}
return convertView;
// String color = bgColors[position % bgColors.length];
// serial.setBackgroundColor(Color.parseColor(color));
}
void delete (int post){
offerList.remove(post);
}
class ViewHolder{
TextView tvOfferName,tvPhoneNumber,tvAddress,
tvTmcBrand,tvStartEndTime,tvNoOfPerson,tvNoOfAcceptors,tvMonth,tvDay;
}
public String getMonth(int month) {
return new DateFormatSymbols().getShortMonths()[month-1];
// return new DateFormatSymbols().getMonths()[month-1];
}
}
Так что я действительно не знать, что такое t главная причина этого - мне не оставалось никакой подсказки. Скажите, пожалуйста, какая проблема.
, что вы сделали в адаптере? пожалуйста, разделите код? –
Мне нужно разделить весь код или только код GetView? –
Я хочу проверить, что вы сделали в адаптере после удаления строки из списка. –