【问题标题】:How to swap 2 Buttons after drag and drop?拖放后如何交换2个按钮?
【发布时间】:2014-06-23 08:29:24
【问题描述】:

我正在尝试创建某种记忆应用程序来学习不同语言的单词。

到目前为止,我已经使用 TextViews 和 Buttons 创建了布局,并且按钮是可拖动的 - 可以长按和拖动。

现在我希望在您将一个按钮拖到另一个按钮上时可以交换按钮,但到目前为止我注意到按钮不能有onDragListener,因为我收到以下错误:

View类型中的setOnDragListener(View.OnDragListener)方法不适用于参数(new OnDragListener(){})

到目前为止,我的代码看起来像这样

for (final Button b : buttonList) {
  //b.setOnDragListener(new MyDragListener());

  b.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
       ClipData.Item item = new ClipData.Item( ((Button) v).getText() );

       String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN};
       ClipData dragData = new ClipData(
           ((Button) v).getText().toString(), 
           mimeTypes, 
           item);

       // Instantiates the drag shadow builder.
       View.DragShadowBuilder myShadow = new DragShadowBuilder(b);

       // Starts the drag
       v.startDrag(dragData,  // the data to be dragged
                   myShadow,  // the drag shadow builder
                   null,      // no need to use local data
                   0          // flags (not currently used, set to 0)
       );
       return true;
    }
 });

  // Create and set the drag event listener for the View
  b.setOnDragListener( new OnDragListener(){
     // ....
  }
}

【问题讨论】:

    标签: android button drag-and-drop listener


    【解决方案1】:

    您缺少导入语句。

    import View.OnDragListener;

    .setOnDragListener(new View.OnDragListener()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多