|
@@ -9,6 +9,8 @@ import android.content.Intent;
|
|
|
import android.net.Uri;
|
|
import android.net.Uri;
|
|
|
import android.os.Build;
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
|
|
|
+import android.text.Editable;
|
|
|
|
|
+import android.text.TextWatcher;
|
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
|
import android.view.Gravity;
|
|
import android.view.Gravity;
|
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
@@ -70,7 +72,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
private static final int SELECT_CURRENCY = 4;
|
|
private static final int SELECT_CURRENCY = 4;
|
|
|
private PopupWindow setWindow = null;//
|
|
private PopupWindow setWindow = null;//
|
|
|
private List<String> detailsData; // 要展示的消费明细
|
|
private List<String> detailsData; // 要展示的消费明细
|
|
|
- private List<String> selected_detailsData; //点击后腰返回的消费明细
|
|
|
|
|
|
|
+ private List<String> selected_detailsData; //点击后要返回的消费明细
|
|
|
private GridDataAdapter gAdapter;
|
|
private GridDataAdapter gAdapter;
|
|
|
private String[] TypeDatas = {"类型1","类型2","类型3","类型4","类型5"};
|
|
private String[] TypeDatas = {"类型1","类型2","类型3","类型4","类型5"};
|
|
|
private String[] CurrencyDatas = {"币种1","币种2","币种3","币种4","币种5"};
|
|
private String[] CurrencyDatas = {"币种1","币种2","币种3","币种4","币种5"};
|
|
@@ -82,6 +84,9 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
private int VERSION_CODES;
|
|
private int VERSION_CODES;
|
|
|
@ViewInject(R.id.table_details_list)
|
|
@ViewInject(R.id.table_details_list)
|
|
|
private MyListView table_details_list;
|
|
private MyListView table_details_list;
|
|
|
|
|
+ private DetailsTableAdapter dtAdapter;
|
|
|
|
|
+ private List<String> table_list_type;
|
|
|
|
|
+ private List<Double> table_list_money;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
@@ -160,12 +165,12 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
});
|
|
});
|
|
|
gv_details_list = (NScrollerGridView) viewContext.findViewById(R.id.gv_details_list);
|
|
gv_details_list = (NScrollerGridView) viewContext.findViewById(R.id.gv_details_list);
|
|
|
btn_sure = (Button) viewContext.findViewById(R.id.btn_sure);
|
|
btn_sure = (Button) viewContext.findViewById(R.id.btn_sure);
|
|
|
- initDetailsView();
|
|
|
|
|
- initDetailDatas();
|
|
|
|
|
- initDetailsEvent();
|
|
|
|
|
|
|
+ initAddView();
|
|
|
|
|
+ initAddDatas();
|
|
|
|
|
+ initAddEvent();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void initDetailsEvent() {
|
|
|
|
|
|
|
+ private void initAddEvent() {
|
|
|
gv_details_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
gv_details_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
@Override
|
|
@Override
|
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
@@ -190,16 +195,23 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
if (ListUtils.isEmpty(selected_detailsData)) return;
|
|
if (ListUtils.isEmpty(selected_detailsData)) return;
|
|
|
details_data_tv.setText(selected_detailsData.toString());
|
|
details_data_tv.setText(selected_detailsData.toString());
|
|
|
for (int i = 0; i < selected_detailsData.size(); i++) {
|
|
for (int i = 0; i < selected_detailsData.size(); i++) {
|
|
|
|
|
+ table_list_type.add(selected_detailsData.get(i));
|
|
|
detailsData.remove(selected_detailsData.get(i));
|
|
detailsData.remove(selected_detailsData.get(i));
|
|
|
|
|
+ if (i == (selected_detailsData.size()-1)){
|
|
|
|
|
+ dtAdapter.setTable_list_type(table_list_type);
|
|
|
|
|
+ dtAdapter.setTable_list_money(table_list_money);
|
|
|
|
|
+ dtAdapter.notifyDataSetChanged();
|
|
|
|
|
+ Log.i("selected_detailsData",selected_detailsData.toString()+"se");
|
|
|
|
|
+ Log.i("detailsData",detailsData.toString()+"de");
|
|
|
|
|
+ Log.i("table_list_type",table_list_type.toString()+"tlt");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- Log.i("selected_detailsData",selected_detailsData.toString()+"se");
|
|
|
|
|
- Log.i("detailsData",detailsData.toString()+"de");
|
|
|
|
|
closePopupWindow();
|
|
closePopupWindow();
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void initDetailDatas() {
|
|
|
|
|
|
|
+ private void initAddDatas() {
|
|
|
if (!ListUtils.isEmpty(selected_detailsData)) selected_detailsData.clear();
|
|
if (!ListUtils.isEmpty(selected_detailsData)) selected_detailsData.clear();
|
|
|
if (initDetailDatas_initialization) return;
|
|
if (initDetailDatas_initialization) return;
|
|
|
for (int i = 0; i < 22; i++) {
|
|
for (int i = 0; i < 22; i++) {
|
|
@@ -209,11 +221,16 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
}
|
|
}
|
|
|
Log.i("initDetailDatas","initDetailDatas_initialization");
|
|
Log.i("initDetailDatas","initDetailDatas_initialization");
|
|
|
}
|
|
}
|
|
|
- private void initDetailsView() {
|
|
|
|
|
|
|
+ private void initAddView() {
|
|
|
detailsData = new ArrayList<>();
|
|
detailsData = new ArrayList<>();
|
|
|
selected_detailsData = new ArrayList<>();
|
|
selected_detailsData = new ArrayList<>();
|
|
|
gAdapter = new GridDataAdapter(mContext, detailsData);
|
|
gAdapter = new GridDataAdapter(mContext, detailsData);
|
|
|
gv_details_list.setAdapter(gAdapter);
|
|
gv_details_list.setAdapter(gAdapter);
|
|
|
|
|
+
|
|
|
|
|
+ dtAdapter = new DetailsTableAdapter();
|
|
|
|
|
+ table_list_type = new ArrayList<>();
|
|
|
|
|
+ table_list_money = new ArrayList<>();
|
|
|
|
|
+ table_details_list.setAdapter(dtAdapter);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -262,10 +279,106 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ private class DetailsTableAdapter extends BaseAdapter{
|
|
|
|
|
+ private Context context;
|
|
|
|
|
+ private List<String> table_list_type;
|
|
|
|
|
+ private List<Double> table_list_money;
|
|
|
|
|
+
|
|
|
|
|
+ public List<String> getTable_list_type() {
|
|
|
|
|
+ return table_list_type;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void setTable_list_type(List<String> table_list_type) {
|
|
|
|
|
+ this.table_list_type = table_list_type;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<Double> getTable_list_money() {
|
|
|
|
|
+ return table_list_money;
|
|
|
|
|
+ }
|
|
|
|
|
+ public void setTable_list_money(List<Double> table_list_money) {
|
|
|
|
|
+ this.table_list_money = table_list_money;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public int getCount() {
|
|
|
|
|
+ return ListUtils.isEmpty(table_list_type) ? 0 : table_list_type.size();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Object getItem(int position) {
|
|
|
|
|
+ return ListUtils.isEmpty(table_list_type) ? 0 : table_list_type.get(position);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public long getItemId(int position) {
|
|
|
|
|
+ return position;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public View getView(final int position, View convertView, ViewGroup parent) {
|
|
|
|
|
+ ViewHolder viewHolder = null;
|
|
|
|
|
+ if (convertView == null){
|
|
|
|
|
+ viewHolder = new ViewHolder();
|
|
|
|
|
+ convertView = View.inflate(ExpenseReimbursementActivity.this, R.layout.expense_details_table_item,null);
|
|
|
|
|
+ viewHolder.details_type = (TextView) convertView.findViewById(R.id.details_type_tv);
|
|
|
|
|
+ viewHolder.details_money = (FormEditText) convertView.findViewById(R.id.details_money_tv);
|
|
|
|
|
+ viewHolder.details_delete = (ImageView) convertView.findViewById(R.id.details_delete_im);
|
|
|
|
|
+ convertView.setTag(viewHolder);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ viewHolder = (ViewHolder) convertView.getTag();
|
|
|
|
|
+ }
|
|
|
|
|
+ viewHolder.details_type.setText(getTable_list_type().get(position) + "");
|
|
|
|
|
+// viewHolder.details_money.setText(getTable_list_money().get(position)+"");
|
|
|
|
|
+
|
|
|
|
|
+ viewHolder.details_delete.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onClick(View v) {
|
|
|
|
|
+ new android.support.v7.app.AlertDialog
|
|
|
|
|
+ .Builder(mContext)
|
|
|
|
|
+ .setTitle(mContext.getString(R.string.common_notice))
|
|
|
|
|
+ .setMessage("确定删除该条消费明细?")
|
|
|
|
|
+ .setNegativeButton(mContext.getString(R.string.common_cancel), null)
|
|
|
|
|
+ .setPositiveButton(mContext.getString(R.string.common_sure), new DialogInterface.OnClickListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
+ table_list_type.remove(position);
|
|
|
|
|
+ if (!ListUtils.isEmpty(table_list_money) && table_list_money.get(position) != null){
|
|
|
|
|
+ table_list_money.remove(position);
|
|
|
|
|
+ }
|
|
|
|
|
+ notifyDataSetChanged();
|
|
|
|
|
+ }
|
|
|
|
|
+ }).show();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ viewHolder.details_money.addTextChangedListener(new TextWatcher() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void afterTextChanged(Editable s) {
|
|
|
|
|
+ double numberstrChche = Double.parseDouble(s.toString());
|
|
|
|
|
+ table_list_money.add(numberstrChche);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ return convertView;
|
|
|
|
|
+ }
|
|
|
|
|
+ class ViewHolder{
|
|
|
|
|
+ TextView details_type;
|
|
|
|
|
+ FormEditText details_money;
|
|
|
|
|
+ ImageView details_delete;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *表格适配器
|
|
|
|
|
|
|
+ *新增弹出PopupWindow表格适配器
|
|
|
*/
|
|
*/
|
|
|
private class GridDataAdapter extends BaseAdapter {
|
|
private class GridDataAdapter extends BaseAdapter {
|
|
|
private Context ct;
|
|
private Context ct;
|
|
@@ -318,21 +431,13 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
modle.tv_text.setSelected(false);
|
|
modle.tv_text.setSelected(false);
|
|
|
modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
|
|
modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
|
|
|
if (!ListUtils.isEmpty(selected_data)){
|
|
if (!ListUtils.isEmpty(selected_data)){
|
|
|
- for (int i = 0;i < selected_data.size();i++){
|
|
|
|
|
- if (selected_data.get(i).equals(mData.get(position))){
|
|
|
|
|
|
|
+ for (int i = 0;i < getSelected_data().size();i++){
|
|
|
|
|
+ if (getSelected_data().get(i).equals(mData.get(position))){
|
|
|
modle.tv_text.setSelected(true);
|
|
modle.tv_text.setSelected(true);
|
|
|
modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
|
|
modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-// if (selected_data.get()) {
|
|
|
|
|
-// modle.tv_text.setSelected(true);
|
|
|
|
|
-// modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
|
|
|
|
|
-// } else {
|
|
|
|
|
-// modle.tv_text.setSelected(false);
|
|
|
|
|
-// modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
|
|
|
|
|
-// }
|
|
|
|
|
return convertView;
|
|
return convertView;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -341,10 +446,6 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 图片适配器
|
|
* 图片适配器
|
|
|
*/
|
|
*/
|