본삭금을 걸어놔서 수정이 안되네요...
package lee.whdghks913.customlistview;
import java.util.ArrayList;
import java.util.Collections;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.customlistview.R;
public class MainActivity extends Activity {
private ListView mListView = null;
private ListViewAdapter mAdapter = null;
private NfcAdapter nfcAdapter;
private PendingIntent pendingIntent;
private TextView mhjTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mhjTextView = (TextView) findViewById(R.id.mhjTextView);
/** 안드로이드에서 nfc를 인식하기위한 도구. **/
nfcAdapter = NfcAdapter.getDefaultAdapter(MainActivity.this);
Intent intent = new Intent(this, getClass())
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
/** 안드로이드 <=> nfc카드 양쪽에서 값을 전달하는 역할 **/
pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent,
0);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (nfcAdapter != null) {
/**
* 카드가 인식되면 값을 전달받을 : MainActivity.this(액티비티명) 안드로이드 <=> nfc카드 양쪽에서
* 값을 전달하는 역할 : pendingIntent
*/
nfcAdapter.enableForegroundDispatch(MainActivity.this,
pendingIntent, null, null);
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (nfcAdapter != null) {
nfcAdapter.disableForegroundDispatch(MainActivity.this);
}
}
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
mListView = (ListView) findViewById(R.id.mList);
mAdapter = new ListViewAdapter(this);
mListView.setAdapter(mAdapter);
if (tag != null) {
byte[] tagId = tag.getId();
String code = toHexString(tagId);
mhjTextView.setText("TagID:" + toHexString(tagId));
Toast.makeText(this, toHexString(tagId), Toast.LENGTH_SHORT).show();
if (code == "04F6B4C2392B80"){
mAdapter.addItem(null,
"ㄱㄱㄱ",
"1313111");
mAdapter.addItem(null,
"ㅇㅇㅇ",
"1000000");
mAdapter.addItem(null,
"ㅅㅅㅅ",
"1111111");
mAdapter.addItem(null,
"ㅁㅁㅁ",
"1010101");
}
else {
mAdapter.addItem(null,
"ㅁㅁㅁ",
"1010101");
}
}
}
public static final String CHARS = "0123456789ABCDEF";
public static String toHexString(byte[] data) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.length; ++i) {
sb.append(CHARS.charAt((data[i] >> 4) & 0x0F))
.append(CHARS.charAt(data[i] & 0x0F));
}
return sb.toString();
}
private class ViewHolder {
public ImageView mIcon;
public TextView mText;
public TextView mDate;
}
private class ListViewAdapter extends BaseAdapter {
private Context mContext = null;
private ArrayList<ListData> mListData = new ArrayList<ListData>();
public ListViewAdapter(Context mContext) {
super();
this.mContext = mContext;
}
@Override
public int getCount() {
return mListData.size();
}
@Override
public Object getItem(int position) {
return mListData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public void addItem(Drawable icon, String mTitle, String mDate){
ListData addInfo = null;
addInfo = new ListData();
addInfo.mIcon = icon;
addInfo.mTitle = mTitle;
addInfo.mDate = mDate;
mListData.add(addInfo);
}
public void remove(int position){
mListData.remove(position);
dataChange();
}
public void sort(){
Collections.sort(mListData, ListData.ALPHA_COMPARATOR);
dataChange();
}
public void dataChange(){
mAdapter.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listview_item, null);
holder.mIcon = (ImageView) convertView.findViewById(R.id.mImage);
holder.mText = (TextView) convertView.findViewById(R.id.mText);
holder.mDate = (TextView) convertView.findViewById(R.id.mDate);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
ListData mData = mListData.get(position);
if (mData.mIcon != null) {
holder.mIcon.setVisibility(View.VISIBLE);
holder.mIcon.setImageDrawable(mData.mIcon);
}else{
holder.mIcon.setVisibility(View.GONE);
}
holder.mText.setText(mData.mTitle);
holder.mDate.setText(mData.mDate);
return convertView;
}
}
}