从设备获取时间戳以在textview中显示?

时间:2011-11-14 05:58:32

标签: android

我正在尝试在活动中为文本视图或任何视图提供时间戳,该活动将提供从按钮打开活动的时间,并显示两个编辑文本的输入到文本视图中分开的活动。例如:

活动Main

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button b = (Button) findViewById(R.id.button1);
        b.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

            }
        });
    }
}

其中包括此xml布局和视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

现在我想从这两个编辑文本中获取用户输入,同时使用按钮上的onClick打开下一个活动,再显示点击按钮时的时间戳:

import android.app.Activity;
import android.os.Bundle;

public class Main2 extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
    }


}

这会使这个xml布局膨胀:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView" android:textSize="20dp"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView" android:textSize="20dp"/>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

所以我想完成以下任务:

         editText1        ----------->          textView1
         editText2        ----------->          textView2
                       Phone's time stamp       textview3

单击按钮打开Main2活动。因此editText1是一个EditText,它将获取用户输入并将该值返回到textView1,对于editText2和textView2也是如此,但最重要的是我希望得到点击按钮的时间和返回到textView3的时间。

现在我知道如何将一个edittext的值返回到另一个活动中的textview而不是两个并获得时间戳。

LAS_VEGAS 好的我有两个标识符可以工作,但是这里的时间戳上出现错误就是我所拥有的代码:

这就是我在第一个Activity onClick方法中所拥有的:

EditText edit = (EditText) findViewById(R.id.etTitle);
            EditText editP = (EditText) findViewById(R.id.etPrice);
            long currentTime = System.currentTimeMillis();

            Intent intent = new Intent(Post.this, PostSet.class);
            intent.putExtra("com.main.espress.POSTSET",                         `edit.getText().toString());`
            intent.putExtra("com.main.espress.NEW",      editP.getText().toString());
            intent.putExtra("currentTime", currentTime);
            startActivity(intent);

这是我的第二个活动:

TextView tv1 = (TextView) findViewById (R.id.tvTitleText);
        TextView tv2 = (TextView) findViewById (R.id.tvPrice);
        TextView tv3 = (TextView) findViewById (R.id.tvTimeStamp);

        Intent intent = getIntent();
        String edit = intent.getStringExtra("com.main.express.POSTSET");
        String editP = intent.getStringExtra("com.main.espress.NEW");
        long currentTime = extras.getLong("currentTime");

        tv1.setText(edit);
        tv2.setText(editP);
        tv3.setText(currentTime);

2 个答案:

答案 0 :(得分:2)

您可以在按钮单击()中使用这些行以毫秒获得当前时间:

long currentTime=System.currentTimeInMillis(); //getting current time in millis
//converting it into user readable format
Calendar cal=Calendar.getInstance();
cal.setTimeInMillis(currentTime);
String showTime=String.format("%1$tI:%1$tM:%1$tS %1$Tp",cal);//shows time in format 10:30:45 am

答案 1 :(得分:0)

您可以使用Intent

在活动之间传递多个数据值

内部onClick()

EditText et1 = (EditText) findViewById(R.id.editText1);
EditText et2 = (EditText) findViewById(R.id.editText2);
long currentTime = System.currentTimeInMillis();

Intent i = new Intent(MainActivity.this, Main2.class);
i.putExtra("editText1", et1.getText());
i.putExtra("editText2", et2.getText());
i.putExtra("currentTime", currentTime);
startActivity(i);

在Activitiy中Main2

Bundle extras = getIntent().getExtras();
String text1 = extras.getString("editText1");
String text2 = extras.getString("editText2");
long currentTime = extras.getLong("currentTime");