2

私は最近、Java から Android 開発用の C# と Mono に移行しました。オプションでtrueまたはfalseを返したいListViewがありますが、Monoにはそうするオプションがないようです。以下にいくつかのコード スニペットを示します。

Java(Monoで再現しようとしています)

ListView listview;
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listview = (ListView)findViewById(R.id.listView1);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

    for (int i = 0; i < 50; i++)
        adapter.add(Integer.toString(i));

    listview.setAdapter(adapter);
    listview.setOnTouchListener(listenerOnTouch);
}

private OnTouchListener listenerOnTouch = new OnTouchListener() {

    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        return false; // <---- This line doesn't exist in Mono
    }
};

モノ相当:

    ListView listview;
    ArrayAdapter<String> adapter;

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.Main);

        listview = FindViewById(Resource.Id.listView1) as ListView;
        adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1);

        for (int i = 0; i < 50; i++)
            adapter.Add (i.ToString());

        listview.Adapter = adapter;
        listview.Touch += ListenerOnTouch;
    }

    private void ListenerOnTouch(object sender, View.TouchEventArgs e)
    {
        // Delegate return type is void, so I can't return true/false
    }

基本的に、この例で私がやろうとしているのは、リスト ビューを上下にドラッグすると通常どおりスクロールし、左右にドラッグすると別のことを行うようにすることです。

4

1 に答える 1

0

e.Handled は、要件の時点で true/false を設定する必要があると思います。

タッチ イベントの処理

于 2013-03-21T09:35:18.743 に答える