2016-07-14 2 views
1

Это мой onStartMethodУдалить кнопку ListViewItem не работает

protected void onStart() { 

    dbHelper = new MyDBHandler(this); 
    // dbHelper.open(); 
    Cursor cursor = dbHelper.fetch(); 
    listView = (ListView) findViewById(R.id.list_view); 
    listView.setEmptyView(findViewById(R.id.empty)); 
    adapter = new SimpleCursorAdapter(this, R.layout.activity_view_record, cursor, from, to, 0); 
    adapter.notifyDataSetChanged(); 

    listView.setAdapter(adapter); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long viewId) { 
      TextView titleTextView = (TextView) view.findViewById(R.id.titlelist); 
      TextView dateTextView = (TextView) view.findViewById(R.id.datelist); 
      TextView timeTextView = (TextView) view.findViewById(R.id.timelist); 
      TextView idTextview = (TextView) view.findViewById(R.id.idlist); 
      TextView descriptionTextView = (TextView) view.findViewById(R.id.descriptionlist); 
      TextView snoozeTextView = (TextView) view.findViewById(R.id.snoozelist); 
      TextView repeatTextView = (TextView) view.findViewById(R.id.repeatlist); 
      final Button deleteButton = (Button) view.findViewById(R.id.deletelist); 

      String title = titleTextView.getText().toString(); 
      String date = dateTextView.getText().toString(); 
      String time = timeTextView.getText().toString(); 
      String id = idTextview.getText().toString(); 
      String description = descriptionTextView.getText().toString(); 
      String snooze = snoozeTextView.getText().toString(); 
      String repeat = repeatTextView.getText().toString(); 
      Intent modify_intent = new Intent(getApplicationContext(), AlarmActivity.class); 

      modify_intent.putExtra("id", id); 
      modify_intent.putExtra("title", title); 
      modify_intent.putExtra("time", time); 
      modify_intent.putExtra("date", date); 
      modify_intent.putExtra("description", description); 
      modify_intent.putExtra("snooze", snooze); 
      modify_intent.putExtra("repeat", repeat); 

      deleteButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        AlertDialog.Builder adb = new AlertDialog.Builder(ReminderList.this); 
        adb.setTitle("Delete?"); 
        adb.setMessage("Are you sure you want to delete this reminder?"); 
        final int positionToRemove = v.getId(); 
        adb.setNegativeButton("Cancel", null); 
        adb.setPositiveButton("Ok", new AlertDialog.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          dbHelper.remove(positionToRemove); 
          adapter.notifyDataSetChanged(); 
         } 
        }); 
        adb.show(); 
       } 
      }); 
      startActivity(modify_intent); 
      listView.invalidateViews(); 
     } 
    }); 
    super.onStart(); 
} 

В это программа, которую я хочу удалить ListItem, но кнопка удаления не реагирует на все.

Это xml кнопки. Я удалил фокус на касание. Это вызывает проблему.

<Button 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:id="@+id/deletelist" 
    android:layout_alignParentRight="true" 
    android:background="@drawable/ic_delete_24dp" 
    android:gravity="center|right" 
    android:layout_marginRight="8dp" 
    android:focusable="false" 
    android:focusableInTouchMode="false"/> 

Пожалуйста, помогите мне Я новичок в Android.

+0

попробовать deleteButton.setClickable (истинный); –

+0

Это все равно. –

+0

Я думаю, вы должны использовать интерфейс прослушивателя –

ответ

1

сначала вы должны поместить внутренний интерфейс в классе адаптера следующим

public static interface ProductsCheckoutAdapterCallbacks { 

     void onremoveCartButtonClicked(ImageView removebutton); 
    } 

создать объект, который в классе адаптера, как

ProductsCheckoutAdapterCallbacks callbacks; 

развивать свой список адаптера конструктор соответственно, как

public ProductCheckoutAdapter(Context context, int layoutResourceId, ArrayList<ProductCheckout> data, ProductsCheckoutAdapterCallbacks callBacks, ArrayList<Cartupdate> cartupdatelist) 
    { 
     super(context, layoutResourceId, data); 
     this.context = context; 
     //other implementation 
} 
    this.layoutResourceId = layoutResourceId; 
    this.callbacks = callBacks; 

и убедитесь, что ваша деятельность должна реализовывать этот интерфак е как метод

public class Product_Checkout extends Activity implements 
     ProductCheckoutAdapter.ProductsCheckoutAdapterCallbacks 

переназначения в вашей деятельности, как

@Override 
    public void onremoveCartButtonClicked(ImageView removeBtn) { 
     // TODO Auto-generated method stub 
     this.removeButton = (ImageView) removeBtn; 
     String inputs[] = removeBtn.getTag().toString().split(":"); 
     // inputs[5]=cartData.cartId; 
     /* 
     * String productid = inputs[0]; String size = inputs[1]; String color = 
     * inputs[2]; 
     */ 
     Constants.context=getActivity(); 
     if(Constants.isConnectingToInternet()) { 
      new Removeproduct().execute(inputs); 
     } 
     // Toast.makeText(getActivity(), "Product removed from cart", 
     // 6000).show(); 
    } 
Смежные вопросы