Android 安卓公共文本框

Android 安卓公共文本框,android,tabs,public,Android,Tabs,Public,我遇到了另一个棘手的小问题 我正在编写一个带有标签的应用程序,但我在屏幕顶部有一个文本框EditText,我希望能够从任何标签接收文本数据。由于每个选项卡都有自己的活动和布局,这很难实现 我希望能够使用: editText1.setText("Hello World");//sample text 从任何选项卡/活动 有人知道如何将一个版面中的文本框公开并能够接收文本吗 我正在使用TabActivity,是的,我知道它已经被弃用了,但由于这是我第一个使用Tab的应用程序,它比片段更容易学习。下

我遇到了另一个棘手的小问题

我正在编写一个带有标签的应用程序,但我在屏幕顶部有一个文本框EditText,我希望能够从任何标签接收文本数据。由于每个选项卡都有自己的活动和布局,这很难实现

我希望能够使用:

editText1.setText("Hello World");//sample text
从任何选项卡/活动

有人知道如何将一个版面中的文本框公开并能够接收文本吗

我正在使用TabActivity,是的,我知道它已经被弃用了,但由于这是我第一个使用Tab的应用程序,它比片段更容易学习。下次我会尝试它们,除非它们是我问题的答案,在这种情况下,我有很多重新编码要做

好的,新的部分

package com.epsilonitsystems.epecsandroid;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TabHost.TabSpec;
import android.view.Menu;
import android.speech.tts.TextToSpeech;

public class MainActivity extends TabActivity {

public EditText editText1;  


@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editText1 = (EditText) findViewById(R.id.editText1); 
    TabHost tabHost = getTabHost();

    // Tab for Core
    TabSpec corespec = tabHost.newTabSpec("Core");
    corespec.setIndicator("", getResources().getDrawable(R.drawable.ic_i));
    Intent coreIntent = new Intent(this, CoreActivity.class);
    corespec.setContent(coreIntent);

    // Tab for Drink
    TabSpec drinkspec = tabHost.newTabSpec("Drink");
    drinkspec.setIndicator("", getResources().getDrawable(R.drawable.ic_drink));
    Intent drinkIntent = new Intent(this, DrinkActivity.class);
    drinkspec.setContent(drinkIntent);


    // Adding all TabSpec to TabHost
    tabHost.addTab(corespec); // Adding Core tab    
    tabHost.addTab(drinkspec); // Adding Drink tab  
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

这是主要的活动,我将展示核心活动,因为当我让它工作时,它们都是相同的

package com.epsilonitsystems.epecsandroid;


import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.speech.tts.TextToSpeech;

public class CoreActivity extends Activity {

private TextToSpeech mTts;
// This code can be any value you want, its just a checksum.
private static final int MY_DATA_CHECK_CODE = 1234;

EditText editText1;
String Spch,Str;
ImageButton imageButton1,imageButton2;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.core_layout);

    //button1 = (Button) findViewById(R.id.button1);
    editText1 = (EditText) findViewById(R.id.editText1);
    mTts = new TextToSpeech(this, null);

}

public void onimageButton1Click(View view) {
//mTts.speak("I",TextToSpeech.QUEUE_FLUSH,null);
//Spch=editText1.toString();
//Spch=Spch+"I ";

    editText1.setText("Hello World");
}


}//Activity End
我不能发布截图,因为我还是一个新用户,对不起

有什么想法吗?

加里

您正在寻找的可能是如何在不同的活动之间共享数据。 您可以通过几种方式来实现这一点,但最干净的方法是使用启动新活动的意图。 使用此选项,您可以通过Intent.putXXXXX方法设置额外数据。 您可以使用一些东西作为Intent.putExtramy\u private\u key,mTextVar;并在您的其他活动中使用this.getIntent.getStringExtramy_private_密钥获取该信息


注:从TabActivity开始看起来很诱人,但实际上,你的开始不好,学习了一些你不应该再使用的课程,这让你自己变得更加困难。我建议您选择一些好的片段教程,这些教程在正确解释后同样容易。您应该看一下每个示例

嗨,Stefan,我将接受有关TabActivity的建议,谢谢。至于使用我开始活动的意图,我认为这不会解决我的问题。我需要能够在用户按下任何选项卡中的按钮时向文本框添加文本。我正在为孩子们编写一个交流程序,他们按上面有符号的按钮来造句。Gary,也许你代码的某些部分和/或你应用程序的屏幕截图会让事情变得更清楚一些。据我所知,从你的评论,你只是想在屏幕顶部有一堆按钮,将文本附加到文本字段。那么为什么不直接使用样式化的按钮呢?