package cn.alphabets.light.ui;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import cn.alphabets.light.R;
import cn.alphabets.light.application.ABSwipeBackActivity;
public class EditActivity extends ABSwipeBackActivity {
public static final String VALUE = "value";
public static final String TITLE = "title";
public static final String DEFAULT = "defaults";
public static final String INPUT_TYPE = "inputType";
public static final String LINE_TYPE = "lineType";
public static final String READONLY = "readonly";
public static final String SINGLE_LINE = "single";
public static final String MULTI_LINE = "multi";
public static final String THEME = "theme";
@Override
protected void onCreate(Bundle savedInstanceState) {
// 设定Theme,需要在setContentView之前调用
Bundle extras = getIntent().getExtras();
if (extras != null) {
int resourceId = extras.getInt(THEME, 0);
if (resourceId != 0) {
setTheme(resourceId);
}
}
super.onCreate(savedInstanceState);
Helper.setShowSoftKeyboard(this);
Helper.setNoIconBackActionBar(this, "Edit");
setContentView(R.layout.activity_edit);
if (extras != null) {
String title = extras.getString(TITLE);
setTitle(title);
String defaults = extras.getString(DEFAULT);
EditText edit = (EditText) findViewById(R.id.edit_text);
edit.setText(defaults == null ? "" : defaults);
int inputType = extras.getInt(INPUT_TYPE);
// 如果没有设置或者设置为0,则改成文本类型
if (inputType == 0) {
edit.setInputType(InputType.TYPE_CLASS_TEXT);
} else {
edit.setInputType(inputType);
}
String lineType = extras.getString(LINE_TYPE);
if (SINGLE_LINE.equalsIgnoreCase(lineType)) {
edit.setLines(1);
edit.setSingleLine(true);
} else {
edit.setLines(4);
edit.setSingleLine(false);
}
boolean isReadOnly = extras.getBoolean(READONLY);
edit.setEnabled(!isReadOnly);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean isReadOnly = getIntent().getExtras().getBoolean(READONLY);
if (!isReadOnly) {
MenuItem item = menu.add(Menu.NONE, android.R.id.edit, 1, R.string.save);
item.setIcon(R.drawable.tool_diskette_white);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
// 返回
if (id == android.R.id.home) {
onBackPressed();
return true;
}
// 保存
if (id == android.R.id.edit) {
EditText edit = (EditText) findViewById(R.id.edit_text);
Intent data = new Intent();
data.putExtra(VALUE, edit.getText().toString());
setResult(RESULT_OK, data);
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}