package com.roboo.like.netease;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
import com.roboo.like.netease.adapter.TwoWayAdapter;
import com.roboo.like.netease.view.TwoWayView;
public class TwoWayActivity extends BaseActivity
{
private static final String TAG="TwoWayActivity";
private TwoWayView mListView;
private Toast mToast;
private String mClickMessage="";
private String mScrollMessage="";
private String mStateMessage="";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTVTitle(R.string.tv_twoway);
// TODO setContentView Tag
setContentView(R.layout.activity_twoway);
mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
mToast.setGravity(Gravity.CENTER, 0, 0);
mListView = (TwoWayView) findViewById(R.id.list);
mListView.setItemMargin(10);
mListView.setLongClickable(true);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View child, int position,
long id) {
mClickMessage = "Item clicked: " + position;
refreshToast();
}
});
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View child,
int position, long id) {
mClickMessage = "Item long pressed: " + position;
refreshToast();
return true;
}
});
mListView.setOnScrollListener(new TwoWayView.OnScrollListener() {
@Override
public void onScrollStateChanged(TwoWayView view, int scrollState) {
String stateName = "Undefined";
switch(scrollState) {
case SCROLL_STATE_IDLE:
stateName = "Idle";
break;
case SCROLL_STATE_TOUCH_SCROLL:
stateName = "Dragging";
break;
case SCROLL_STATE_FLING:
stateName = "Flinging";
break;
}
mStateMessage = "Scroll state changed: " + stateName;
refreshToast();
}
@Override
public void onScroll(TwoWayView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
mScrollMessage = "Scroll (first: " + firstVisibleItem + ", count = " + visibleItemCount + ")";
refreshToast();
}
});
mListView.setRecyclerListener(new TwoWayView.RecyclerListener() {
@Override
public void onMovedToScrapHeap(View view) {
Log.d(TAG, "View moved to scrap heap");
}
});
mListView.setAdapter(new TwoWayAdapter( this));
}
private void refreshToast() {
StringBuffer buffer = new StringBuffer();
if (!TextUtils.isEmpty(mClickMessage)) {
buffer.append(mClickMessage);
}
if (!TextUtils.isEmpty(mScrollMessage)) {
if (buffer.length() != 0) {
buffer.append("\n");
}
buffer.append(mScrollMessage);
}
if (!TextUtils.isEmpty(mStateMessage)) {
if (buffer.length() != 0) {
buffer.append("\n");
}
buffer.append(mStateMessage);
}
mToast.setText(buffer.toString());
mToast.show();
}
}