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