1

私は PullToRefreshListView を持っています - https://github.com/chrisbanes/Android-PullToRefresh

長いクリックをする必要があります。私のコード:

pullToRefreshView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh_listview);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr);
    pullToRefreshView.setAdapter(adapter);
    pullToRefreshView.setLongClickable(true);
pullToRefreshView.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            Log.d("privet ia long click", "yes");
            return true;
        }
   });

しかし、うまくいきません。なんで?

4

2 に答える 2

1

このライブラリに沿って与えられた例を確認し、次のコードも確認してください (このコードは、このライブラリのサンプル コードのみからのものです)。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pulltorefresh);

    mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);

    // Set a listener to be invoked when the list should be refreshed.
    mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
        @Override
        public void onRefresh(PullToRefreshBase<ListView> refreshView) {
            String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),
                    DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);

            // Update the LastUpdatedLabel
            refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);

            // Do work to refresh the list here.
            new GetDataTask().execute();
        }
    });
    // Add an end-of-list listener
    mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {

        @Override
        public void onLastItemVisible() {
            Toast.makeText(PullToRefresh.this, "End of List!", Toast.LENGTH_SHORT).show();
        }
    });

    ListView actualListView = mPullRefreshListView.getRefreshableView();

    // Need to use the Actual ListView when registering for Context Menu
    registerForContextMenu(actualListView);

    mListItems = new LinkedList<String>();
    mListItems.addAll(Arrays.asList(mStrings));

    mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems);

    /**
     * Add Sound Event Listener
     */
    SoundPullEventListener<ListView> soundListener = new SoundPullEventListener<ListView>(this);
    soundListener.addSoundEvent(State.PULL_TO_REFRESH, R.raw.pull_event);
    soundListener.addSoundEvent(State.RESET, R.raw.reset_sound);
    soundListener.addSoundEvent(State.REFRESHING, R.raw.refreshing_sound);
    mPullRefreshListView.setOnPullEventListener(soundListener);

    // You can also just use setListAdapter(mAdapter) or
    // mPullRefreshListView.setAdapter(mAdapter)
    actualListView.setAdapter(mAdapter);
}

上記のコードリストでは、次のように使用されています

ListView actualListView = mPullRefreshListView.getRefreshableView();

したがって、これを実装した後、longpresslistener を使用できます。

actualListView.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        Log.d("privet ia long click", "yes");
        return true;
    }
});

お役に立てば幸いです...乾杯!

于 2013-07-17T10:15:04.620 に答える