1

私は Android が初めてで、答えを探していますが、問題を解決できないようです。あるアクティビティから別のアクティビティに情報を渡す意図があります。setContentView() が TextView に設定されている場合、受信したアクティビティはそれを表示します。setContentView() で xml ファイルを使用しようとすると、文字列が表示されません。

意図

public void clockin (View view){
    Intent intent = new Intent (getApplicationContext(), Mainmenu.class);
    String timedate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance90.getTime()0;
    intent.putExtra("TIME_DATE", timedate);
    startActivity(intent);

アクティビティ

public class Mainmenu extends Activity{
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras();
        if(extras!=null){
        String timedate = extras.getString("TIME_DATE");

        TextView textView = new TextView (this);
        text.View.setTextSize(20);
        text.View.setText(timedate);
        setContentView(R.layout.activity_mainmenu);}}

XML

<TextView
     android:id="@+id/TIME_DATE"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textSize="20sp"
     />
4

4 に答える 4

2

あなたの問題を防ぐエキストラに名前を付けるためのAndroidのイディオム:

   Intent intent = new Intent (getApplicationContext(), Mainmenu.class);
   intent.putExtra(Mainmenu.EXTRA_DATE, timedate)

アクティビティ:

    public class Mainmenu extends Activity {

      public final static String EXTRA_DATE="TIME_DATE":      

      protected void onCreate(Bundle savedInstanceState){

          ....              

          String timedate = extras.getString(EXTRA_DATE);
于 2013-06-09T02:40:56.590 に答える
1

あなたの MainMenu は

 public class Mainmenu extends Activity{
 protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.activity_mainmenu);  
    Bundle extras = getIntent().getExtras();
    if(extras!=null){
    String timedate = extras.getString("Time_Date");// key must match
    TextView textView = new TextView (this); // initialize textview
    textView.setTextSize(20);
    textView.setText(timedate);
    setContentView(textView);   // set textview as layout content 
    }
    }

              or

activity_mainmenu.xml

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textSize="20sp" 
        android:text="TextView" />

</RelativeLayout>

メインメニュー

     public class Mainmenu extends Activity{
     protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mainmenu);  
    Bundle extras = getIntent().getExtras();
    if(extras!=null){
    String timedate = extras.getString("Time_Date");
    TextView textView = (TextView) findViewById(R.id.textView1);
    textView.setText(timedate); 
    }
    }
于 2013-06-09T04:01:42.543 に答える
0

2 番目のアクティビティで、これを試してください。

Intent intent = getIntent();
String timedate = intent.getStringExtra("Time_Date");
于 2013-06-09T02:17:51.207 に答える
0

エクストラの名前は大文字と小文字が区別されます。

String timedate = extras.getString("Time_Date");
于 2013-06-09T02:05:25.060 に答える