2

カスタムリストビューを含むスライダーを取得しました。使用していたときはうまく機能android.R.layout_simple_list_itemしていましたが、それを自分のレイアウトに変更したときに見栄えが良くなりましたが、使用していたonclickメソッドが機能しなくなりましたが、エラーが発生したため、クリックメソッドを適用できません誰かが私のコードの問題を教えてください。感謝?ここに私のJavaコードがあります

public class MenuFragment extends ListFragment
{
@Override
public void onActivityCreated(Bundle savedInstanceState) 
{
    super.onActivityCreated(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(getActivity(),
        R.layout.burger_list,R.id.textView2, new String[] { " Main menu", " My  schedual", " Location", " Media", " Tickets", "News","Facebook","Instagram","Policy","Share this app"}));
    getListView().setCacheColorHint(0);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    ((ActivityMenu)getActivity()).getSlideoutHelper().close();

    if(position==0)
    {
        Intent i = new Intent(v.getContext(),ActivityMainMenu.class);
        startActivity(i); 
    }      
    else if(position==1)
     {
        Intent i = new Intent(v.getContext(),ActivityMySchedual.class);
        startActivity(i); 
     }

    else if(position==2)
    {
        Intent i = new Intent(v.getContext(),ActivityMySchedual.class);
       startActivity(i); 
    }
    else if(position==3)
    {
        Intent i = new Intent(v.getContext(),ActivityMedia.class);
       startActivity(i); 
    }

}
}

ここにxmlがあります

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#556B2F" >

<ScrollView
    android:id="@+id/scrolololo"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true" >

    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:background="#556B2F" >

        <TableRow
            android:id="@+id/tablerow"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true"
            android:gravity="center_vertical"
            android:paddingBottom="7dp"
            android:paddingTop="7dp" >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="320dp"
                android:layout_height="40dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="#FFFFFF" />
        </TableRow>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="@drawable/main_list_sep" />
    </TableLayout>
</ScrollView>
</RelativeLayout>

このクラスは私のスライダーです。私がそれを変更することはすべてMenuFragmentそれに影響します。ハマった!

public class ActivityMenu extends FragmentActivity{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    mSlideoutHelper = new SlideoutHelper(this);
    mSlideoutHelper.activate();
     getSupportFragmentManager().beginTransaction().add(com.korovyansk.android.slideout.R.id.slideout_placeholder, new MenuFragment(), "menu").commit();
    mSlideoutHelper.open();
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        mSlideoutHelper.close();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}


public SlideoutHelper getSlideoutHelper(){
    return mSlideoutHelper;
}

private SlideoutHelper mSlideoutHelper;
}
4

2 に答える 2

0

ListViewは XMLのどこにありますか?

Android docs から、 a を使用しているため、 XML で idを使用して aListFragmentを宣言できます。これは正規リスト識別子です。ListView@android:id/list

第二に、あなたが を持っていると仮定するとListView、どこに設定していonItemClickListenerますか? 次のようなものが必要になります。

getListView().setOnItemClickListener(new OnItemClickListener() {...});

メソッドでこれを行いonViewCreated()ます。この時点で、 の存在ListViewが保証されます。

于 2013-06-17T00:32:09.960 に答える