Как использовать кнопку для установки текста в TextView, а также для изменения экранов? - PullRequest
1 голос
/ 01 апреля 2012

Я работаю над приложением, разработанным для Android 3.0 и более поздних версий, и я хочу использовать одну кнопку, чтобы сначала установить текст в текстовом представлении, а затем изменить экран с screen1 на screen2 ...

Вот мой код (вызывает сбой):

    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

EDIT:

Код для 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);
        }
    });
}

}

Код для второго экрана:

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;

}

}

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

используйте это:

    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);
            }
        });

и должны recipedisplayscreen активность в AndroidManifest.xml

1 голос
/ 01 апреля 2012
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.. 
...