80,492
社区成员
发帖
与我相关
我的任务
分享
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import com.zhd.hi_test.R;
import com.zhd.hi_test.callback.IDialogCallback;
/**
* Created by juiz on 2015/9/7.
* 使用回调函数来获取dialog上面的信息
*/
public class CustomDialog extends DialogFragment {
private IDialogCallback mCallback;
private View mView;
//回调函数
public void setmCallback(IDialogCallback mCallback) {
this.mCallback = mCallback;
}
//创建返回一个自定义弹出框
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//使用dialogbuild来创建
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
//设置layoutInflater布局填充器来填充布局
//LayoutInflater inflater=LayoutInflater.from(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
//将AlertDialog用布局填充器进行设置和填充(这里获取view对象,用来获取上面的信息)
mView = inflater.inflate(R.layout.dialog_sign, null);
builder.setView(mView)
//设置确定按钮
.setPositiveButton("创建", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mCallback.getInfo(mView);
// CustomDialog.this.dismiss();
}
}
)
.setNegativeButton("取消", null);
return builder.create();
}
}
//点击创建后出现的menu
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//这个会首先运行完,然后才会去调用回调函数,如果点击创建就会卡在manager里面
switch (id) {
case R.id.item_create:
//这里实现创建项目,使用dialog来创建
CustomDialog dialog = new CustomDialog();
//获取弹出框里面的信息
dialog.setmCallback(new IDialogCallback() {
@Override
public void getInfo(View view) {
EditText et1 = (EditText) view.findViewById(R.id.et_pro_name);
String pro_name = et1.getText().toString();
boolean isRight = Method.checkMsg(pro_name);
if (isRight) {
mConfigs[0] = pro_name;//获得项目名称
} else {
Toast.makeText(ProjectListActivity.this, "请输入正确的项目名称", Toast.LENGTH_SHORT).show();
return;
}
EditText et2 = (EditText) view.findViewById(R.id.et_pro_back);
String pro_back = et2.getText().toString();
mConfigs[1] = pro_back;//项目备注
String add_time = Method.getCurrentTime();
mConfigs[2] = add_time;//添加时间
mConfigs[3] = add_time;//第一次创建的时间就是最近的打开时间
//创建文件夹,写入config.txt配置文件,如果写在外面会先执行这个,在点击item的时候就会执行
//而我必须在点击确定后才能执行这段代码,所以在外面执行全为空
//获得添加的项目对象
boolean res = Method.createProject(mPath, mConfigs, getApplicationContext());
if (res) {
Toast.makeText(ProjectListActivity.this, "创建成功", Toast.LENGTH_SHORT).show();
//刷新
refresh();
//全局变量中
d.setmProject(mProject);
mProject = null;
} else
Toast.makeText(ProjectListActivity.this, "创建失败", Toast.LENGTH_SHORT).show();
}
});
//把dialog放进服务中进行显示
dialog.show(getFragmentManager(), "CreateDialog");
break;
case R.id.item_delte:
if (mProject != null) {
deleteProject();
} else {
Toast.makeText(ProjectListActivity.this, "请选择项目", Toast.LENGTH_SHORT).show();
}
break;
}
return super.onOptionsItemSelected(item);
}