2012-03-31 57 views
1

进出口工作的专为Android 3.0版本起,应用程序,我想用一个按钮来第一次在的setText文本视图,然后从屏幕1到屏幕2改变屏幕...如何使用按钮在TextView中设置文本并更改屏幕?

这里是我到目前为止的代码(原因崩溃):

Button mainNext = (Button) findViewById(R.id.Recipe1); 
    mainNext.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 

      final TextView mTextView = (TextView) findViewById(R.id.textView3); 
      mTextView.setText("Some Text"); 

      Intent i = new Intent(); 
      i.setClassName("com.bluStudios.Recipes4U.ics", "com.bluStudios.Recipes4U.ics.recipedisplayscreen"); 
      startActivity(i); 
     } 
    }); 

任何想法? 在此先感谢:P

编辑:

代码第1屏:

public class Recipe_Button_List extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.recipe_button_list); 


    Button mainNext = (Button) findViewById(R.id.Recipe1); 
    mainNext.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      final TextView mTextView = (TextView) findViewById(R.id.textView3); 
      mTextView.setText("Some Text"); 
Intent i= new Intent(Recipe_Button_List.this, recipedisplayscreen.class); 
      startActivity(i); 
     } 
    }); 
} 

}

守则第2屏幕:

public class recipedisplayscreen extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.recipedisplayscreen); 
    ActionBar actionBar = getActionBar(); 
    setTitle(R.string.title); 
    actionBar.setDisplayHomeAsUpEnabled(true);} 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       // App icon in action bar clicked; go home 
       Intent intent = new Intent(this, MainScreen.class); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(intent); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.recipe_menu1, menu); 
     return true; 

} 

}

+1

recipedisplayscreen活动当u [R运行这段代码是什么情况? – 2012-03-31 20:51:58

+0

分享您的错误LOG_CAT崩溃的值。可能有这样一个的各种原因 – 2012-03-31 20:59:24

+0

03-31 21:43:57.702:E/AndroidRuntime(28481):\t在android.app.ActivityThread.main(ActivityThread.java:4340 ) 03-31 21:43:57.702:E/AndroidRuntime(28481):\t at java.lang.reflect.Method.invokeNative(Native Method) 03-31 21:43:57.702:E/AndroidRuntime(28481): \t at java.lang.reflect.Method.invoke(Method.java:511) 03-31 21:43:57.702:E/AndroidRuntime(28481):\t at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 03-31 21:43:57.702:E/AndroidRuntime(28481):\t at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) – Bercik 2012-03-31 21:00:37

回答

2

使用:

Button mainNext = (Button) findViewById(R.id.Recipe1); 
     mainNext.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       final TextView mTextView = (TextView) findViewById(R.id.textView3); 
       mTextView.setText("Some Text"); 
    Intent i= new Intent(YOUR_CURRENT_ACTIVTY_NAME.this, recipedisplayscreen.class); 
///or you can use Intent i= new Intent(getBaseContext(),recipedisplayscreen.class); 
       startActivity(i); 
      } 
     }); 

,必须AndroidManifest.xml

+1

我将此代码添加到我的应用程序....但我仍然崩溃...我认为这一定是由setText位引起的,因为当我删除它时,我的应用程序工作正常:/ – Bercik 2012-03-31 21:12:49

+0

而不是settext()。发布两个活动code.then我会告诉你? – 2012-03-31 21:15:09

+0

看到我的编辑.... – Bercik 2012-03-31 21:19:33

1
I think the your main layout do not contain any textView with id (R.id.textView3). 

Also the right way is to declare the TextView outside the click listener.. 
+0

它确实有textview3:P – Bercik 2012-03-31 21:23:18

+0

你是对的:P – Bercik 2012-03-31 22:23:21

相关问题