1

在我的应用程序中,我在滑动抽屉的列表视图中设置了所有用户已安装应用程序的列表。如何允许用户将一个链接从列表视图拖到抽屉的另一个区域(抽屉拉出的区域)?

我研究了拖放,我注意到每个项目都需要一个 ID(我不知道如何为每个项目创建一个 ID)。

无论如何,这是我的编码:

Drag_and_Drop_App:

package com.example.awesomefilebuilderwidget;

IMPORTS

public class Drag_and_Drop_App extends Activity {
private ListView mListAppInfo;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // set layout for the main screen
    setContentView(R.layout.drag_and_drop_app);

    // load list application
    mListAppInfo = (ListView)findViewById(R.id.lvApps);
    // create new adapter
    AppInfoAdapter adapter = new AppInfoAdapter(this, Utilities.getInstalledApplication(this), getPackageManager());
    // set adapter to list view
    mListAppInfo.setAdapter(adapter);
    // implement event when an item on list view is selected
    mListAppInfo.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View view, int pos, long id) {
            // get the list adapter
            AppInfoAdapter appInfoAdapter = (AppInfoAdapter)parent.getAdapter();
            // get selected item on the list
            ApplicationInfo appInfo = (ApplicationInfo)appInfoAdapter.getItem(pos);
            // launch the selected application
            Utilities.launchApp(parent.getContext(), getPackageManager(), appInfo.packageName);
        }
    });
}
}

请注意,我有其他类在后台运行以收集用户应用程序并运行 onClickListners,但这是实际小部件中显示的内容。

这是 Drag_and_Drop_App.xml:

<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" >

<SlidingDrawer
    android:id="@+id/bottom"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:orientation="horizontal"
    android:layout_marginTop="200dp"
    android:content="@+id/content"
    android:handle="@+id/handle" >

    <Button
        android:id="@+id/handle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Handle" />

    <LinearLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:orientation="vertical"
        android:background="#00FF00">

<ListView
    android:id="@+id/lvApps"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"       
/>


    </LinearLayout>
</SlidingDrawer>

</RelativeLayout>

我知道我可能想要使用 OnLongClick 侦听器,以便在长按 Listview 中的项目时,用户可以将其拖放到视图的其他部分。

我也知道链接/应用程序将被拖放到的视图将是一个使用 DragListener 的巨大 droptarget。(我一直在看这里的拖放教程

如何为每个列表视图项创建一个 ID,以便它可以分配一个 LongTouchListener 以在布局中使用?

我希望这是有道理的,如果没有,请告诉我!

4

0 回答 0