10

私は以下のコードを持っています:

public class MainActivity extends ListActivity { 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}   
protected void onListItemClick(ListView l, View v, final int position, long id) {
    super.onListItemClick(l, v, position, id);
}}

これをonListItemLongClick()に変更する必要がありますが、どうすればよいですか? 出来ますか?

4

5 に答える 5

6

あなたの質問はこれと非常に似ていますが、完全に重複していないようです。

お気づきのことと思いますが、ListActivityクラスには、このケース専用のメソッド オーバーライドがありません。

この機能をメソッド オーバーライドとして追加するには、クラスでAdapterView.OnItemLongClickListenerインターフェイスを実装する必要があります。その後、メソッド オーバーライドを追加できます。これは、既存onItemLongClick()のメソッド オーバーライドと同じように機能しonListItemClick()ますが、長いクリックに応答します。

この回答の指示に従っていることを確認してくださいandroid:longClickable="true"。レイアウトxmlで使用するか、呼び出す必要がありますlistview.setLongClickable(true);

例:

public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener {

    ListView listview;

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

        ListView listview = (ListView) findViewById(R.id.list);

        listview.setLongClickable(true);

    }

    @Override
    public boolean onItemLongClick(AdapterView<?> l, View v,
                                   final int position, long id) {

        Toast.makeText(this, "long clicked pos: " + position, Toast.LENGTH_LONG).show();

        return true;
    }

    protected void onListItemClick(ListView l, View v, final int position, long id) {
        super.onListItemClick(l, v, position, id);

        Toast.makeText(this, "short clicked pos: " + position, Toast.LENGTH_LONG).show();  

    }

 //....................
于 2015-07-05T07:29:28.173 に答える
3

あなたは単にそれを行うことができますsetOnItemLongClickListener

listview.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Toast.makeText(ClassName.class, "Long Clicked Trigger: ", Toast.LENGTH_LONG).show();
            return true;
        }
});
于 2016-06-20T09:53:54.597 に答える