2

ドキュメントで提案されているように、 が埋め込まScrollViewれています。以下は、レイアウトの縮小です。LinearLayoutScrollView

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tab2_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    </LinearLayout>

</ScrollView>

ListViewの代わりに aを使用する多くのアクティビティで次のパターンをScrollView問題なく使用します。したがって、問題は ScrollView に固有のようです。

final ScrollView scrollView = (ScrollView) frame.findViewById(R.id.tab2_view); 
final LinearLayout layout = (LinearLayout) frame.findViewById(R.id.top); 

//load and sort backing ArrayList

//neither of these calls resolve the issue
registerForContextMenu(scrollView);
//registerForContextMenu(layout);

//load layout with views

ここで問題が発生します。から返される値item.getMenuInfo()は常に null です。

@Override
    public boolean onContextItemSelected(MenuItem item){
        boolean result = false;
        try 
        {
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); //why is this null???
            switch (item.getItemId()) {
                //do stuff
            }
        }
        catch (Exception e) { ExceptionHandler.handleException(LOG_TAG, e); }
        return result;
    }

問題を解決する方法を知っている人はいますか?

menuItem状態変数を維持し、 null の代わりに のタイトルをチェックすることで回避策を見つけましたAdapterContextMenuInfoAdapterContextMenuInfoしかし、選択した から を取得する方法を理解したいと思いMenuItemます。

私はSOの投稿を見てきました。それらはすべて、コピー/貼り付けエラーに根ざしているかregisterForContextMenu、正しいオブジェクトを呼び出していないようです。 これは、これ以外の問題があることを示唆する唯一の記事です。

4

0 に答える 0