我有一个编辑文本和一个文本视图。 Textview将以String格式显示日期。如果用户在edittext中输入10,则textview中的自动日期应更新为显示提前10天的日期。
怎么做?
提前致谢。
罗汉
答案 0 :(得分:8)
请参阅此内容并实施
public class MainActivity extends Activity {
EditText edt_day;
String day = "";
int next_date = 0;
TextView txt_next_date;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edt_day = (EditText) findViewById(R.id.edt_day);
txt_next_date = (TextView) findViewById(R.id.txt_next_date);
edt_day.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
// Log.i("KeyBoard" ,"Inside the Edit Text");
if (actionId == EditorInfo.IME_ACTION_GO) {
next_date = Integer.parseInt(edt_day.getText().toString());
Calendar someDate = GregorianCalendar.getInstance();
someDate.add(Calendar.DAY_OF_YEAR, +next_date);
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(someDate.getTime());
Log.e("minite", "formattedDate=" + formattedDate);
txt_next_date.setText(formattedDate);
}
return false;
}
});
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/edt_day"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:hint="Enter no of Day"
android:imeOptions="actionGo"
android:singleLine="true"
android:textSize="14sp" />
<TextView
android:id="@+id/txt_next_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
tools:context=".MainActivity" />
</RelativeLayout>
答案 1 :(得分:0)
首先,您必须使用TextWatcher,因为您说用户在edittext中输入值,而值应在Textview中更改。和其他你没有正确描述的功能,但你可以使用Textwatcher来完成。