-1

私はAndroidコーディングを初めて使用するので、誰かが私を助けてくれることを願っています。同様の問題で、タブホスト内のアクティビティからタブホスト内のビューのviewbyidを見つけるにはどうすればよいですか? しかし、答えは私にはうまくいきませんでした...私のアプリにはmain.xmlとtab1.xmlとtab2.xmlが含まれており、それぞれにActivityクラスがあります。コードは次のとおりです。

public class MainActivity extends TabActivity {  


/** Called when the activity is first created. */ 
Intent tab1, tab2;

@Override 
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);  


    TabSpec firstTabSpec = tabHost.newTabSpec("tid1");  
    TabSpec secondTabSpec = tabHost.newTabSpec("tid2");  

    tab1 = new Intent(this, tab1Activity.class);
    tab2 = new Intent(this, tab2Activity.class);

    firstTabSpec.setIndicator("TAB1").setContent(tab1);  
    secondTabSpec.setIndicator("Tab2").setContent(tab2);  

    tabHost.addTab(firstTabSpec);  
    tabHost.addTab(secondTabSpec);  

}

そしてここにtabHostのアクティビティ

  public class tab1Activity extends Activity
  {

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

    EditText t = (EditText) findViewById(R.id.note);
    t.setText("Test"); // here it crashes!

}

 }

だから私の質問はどうすればfindViewByIdグローバルを使用できますか?インテントで作業する必要がありますか?誰かが私を助けてくれたら素晴らしいでしょう!:-)

4

1 に答える 1

0

contentViewで設定したレイアウトを確認する必要があると思います。問題の原因である可能性があります。

 public class tab1Activity extends Activity
  {

/** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.xml); // <-------- your problem could be here

    EditText t = (EditText) findViewById(R.id.note);
    t.setText("Test"); // here it crashes!

}

 }
于 2012-08-21T01:23:32.023 に答える