Android:ドロップダウン・リフレッシュ+追加ロード+スライド削除の例説明
13890 ワード
皆さんはタオバオをぶらぶらしたり、いろいろなアプリを見たりして、このような機能を見ることができます.ドロップダウンのリフレッシュとロードの増加、スライドの削除、リフレッシュとは、ブラシを洗ってから新しくすることです.古いものを突破して新しいものを創造することを意味します.例えば、携帯電話でニュースを閲覧するとき、ドロップダウンのリフレッシュ機能を使って、私たちは最初に最新のニュースを把握することができます.ロードの増加は何ですか.简単に言えば、ホームページの上で宝を洗う时、私达は次のページをクリックして私达のもっと多くの需要を満たすことができて、しかし携帯电话の端で异なって、上下のページがなくて、どのようにnieをして、方法はいつも困难より多くて、注意深い友达は発见することができて、携帯电话の端の中で、もっと多くのロードが私达の要求を満たすことができて、実はもっと多くのロードもページの1种の体现です.小伙伴在手机版QQ的时候,情报インタフェースには多くの情报があります.もしあなたも小编のように强迫症があれば、见终わった情报を削除したいと思っています.どうすればいいですか.今日のブログでは、主に友达とドロップダウンの更新とロードのより多くのスライド削除を共有し、必要な友达を助けることができることを望んでいます.また、友达によろしくお愿いします.
まずxmlの内容を書く必要がありますactivityと名付けましたitem、具体的なコードは以下の通りです.
XML/HTMLコード
次にlist_を作成しますitemにはxmlに関するコードがあります.具体的なコードは以下の通りです.
XML/HTMLコード
第三に、mainのxmlファイルを作成します.具体的なコードは以下の通りです.
XML/HTMLコード
ステップ4ではxlistview_を作成しますfooterのxmlファイルの具体的なコードは以下の通りです.
XML/HTMLコード
ステップ5ではxlistviewを作成しますヘッダーのxmlファイル、具体的なコードは以下の通りです.
XML/HTMLコード
これで、レイアウトxmlファイルのコードについて書き終わりました.次に、javaクラスのコードを書き始めました.まず、ItemActivityのコードを書きます.具体的なコードは以下の通りです.
Javaコード
次に、アダプタadapterのコードを作成します.具体的なコードは以下の通りです.
Javaコード
最後に、XListViewActivityのコードを作成します.具体的なコードは以下の通りです.
Javaコード
以上、Androidでドロップダウン・リフレッシュとロード、スライド削除を実現した知識整理を行いました.
まずxmlの内容を書く必要がありますactivityと名付けましたitem、具体的なコードは以下の通りです.
XML/HTMLコード
次にlist_を作成しますitemにはxmlに関するコードがあります.具体的なコードは以下の通りです.
XML/HTMLコード
第三に、mainのxmlファイルを作成します.具体的なコードは以下の通りです.
XML/HTMLコード
ステップ4ではxlistview_を作成しますfooterのxmlファイルの具体的なコードは以下の通りです.
XML/HTMLコード
ステップ5ではxlistviewを作成しますヘッダーのxmlファイル、具体的なコードは以下の通りです.
XML/HTMLコード
これで、レイアウトxmlファイルのコードについて書き終わりました.次に、javaクラスのコードを書き始めました.まず、ItemActivityのコードを書きます.具体的なコードは以下の通りです.
Javaコード
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;
public class ItemActivity extends Activity implements OnTouchListener {
private float x, upx;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item);
init();
}
private void init() {
findViewById(R.id.ll_parent).setOnTouchListener(this);
((TextView) findViewById(R.id.tv_text)).setText(getIntent().getStringExtra("item"));
}
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
x = event.getX();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
upx = event.getX();
if (Math.abs(x - upx) > 20) {
this.finish();
overridePendingTransition(0, R.anim.slide_out_to_right);
}
}
return true;
}
}
次に、アダプタadapterのコードを作成します.具体的なコードは以下の通りです.
Javaコード
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ItemAdapter extends BaseAdapter {
private LayoutInflater inflater;
private ArrayList datas;
public ItemAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
public void setData(ArrayList datas) {
this.datas = datas;
}
public int getCount() {
return datas.size();
}
public Object getItem(int position) {
return datas.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_item, null);
holder.coating = (TextView) convertView.findViewById(R.id.tv_coating);
holder.functions = (TextView) convertView.findViewById(R.id.tv_functions);
holder.list_item_textview=(TextView) convertView.findViewById(R.id.list_item_textview);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.list_item_textview.setText(datas.get(position));
holder.coating.setVisibility(View.VISIBLE);
holder.functions.setClickable(false);
return convertView;
}
public final class ViewHolder {
public TextView coating;
public TextView functions;
public TextView list_item_textview;
}
}
最後に、XListViewActivityのコードを作成します.具体的なコードは以下の通りです.
Javaコード
import java.util.ArrayList;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import me.maxwin.view.XListView.RemoveListener;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class XListViewActivity extends Activity implements IXListViewListener ,RemoveListener,OnItemClickListener{
private XListView mListView;
// private ArrayAdapter mAdapter;
private ItemAdapter adapter;
// private Context context;
private ArrayList items = new ArrayList();
private Handler mHandler;
private int start = 0;
private static int refreshCnt = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
geneItems();
init();
mHandler = new Handler();
}
private void init() {
// TODO Auto-generated method stub
mListView = (XListView) findViewById(R.id.xListView);
mListView.setPullLoadEnable(true);
mListView.setRemoveListener(this);
mListView.setOnItemClickListener(this);
// mListView.setPullLoadEnable(false);
// mListView.setPullRefreshEnable(false);
mListView.setXListViewListener(this);
adapter=new ItemAdapter(this);
adapter.setData(items);
mListView.setAdapter(adapter);
}
private void geneItems() {
for (int i = 0; i != 20; ++i) {
items.add("refresh cnt " + (++start));
}
}
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime(" ");
}
@Override
public void onRefresh() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
start = ++refreshCnt;
items.clear();
geneItems();
// mAdapter.notifyDataSetChanged();
adapter=new ItemAdapter(XListViewActivity.this);
adapter.setData(items);
mListView.setAdapter(adapter);
onLoad();
}
}, 2000);
}
@Override
public void onLoadMore() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
geneItems();
adapter.notifyDataSetChanged();
onLoad();
}
}, 2000);
}
@Override
public void removeItem(int position) {
// TODO Auto-generated method stub
mListView.isSlide = false;
mListView.itemView.findViewById(R.id.tv_coating).setVisibility(View.VISIBLE);
items.remove(position);
adapter.notifyDataSetChanged();
}
@Override
public void onItemClick(AdapterView> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Intent intent = new Intent(getApplicationContext(), ItemActivity.class);
intent.putExtra("item", items.get(position));
startActivity(intent);
overridePendingTransition(R.anim.slide_in_from_right, R.anim.remain_original_location);
}
}
以上、Androidでドロップダウン・リフレッシュとロード、スライド削除を実現した知識整理を行いました.