Android:来自不同活动时无法在主要活动的textview上写

时间:2014-11-27 05:30:36

标签: android android-intent android-actionbar textview

我创建了一个简单的演示程序,其中有开始按钮。当我点击主(主)屏幕上的开始按钮"嗨所有"附加到文本视图。它工作正常,但当我从选择操作栏菜单更改活动,如果再次通过选择操作栏主菜单进入主屏幕,那么它将不会显示"嗨所有&#34 ;单击“开始”按钮时的消息。

package com.example.testdemo;
import android.app.ActionBar.LayoutParams;
import android.content.Intent;
import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.text.method.ScrollingMovementMethod;
    import android.view.Gravity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.TextView;
public class MainActivity extends Activity {    
private TextView logArea;
private TextView log;

    @Override  
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.home);
            ActionBar actionBar = getActionBar();
            log = new TextView(MainActivity.this); 
            log.append("Heollosdfsjdf" + "\n");
            @SuppressWarnings("deprecation")
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
            params.gravity = Gravity.LEFT;
            log.setLayoutParams(params);
            log.setGravity(Gravity.CENTER);
            LinearLayout chat = (LinearLayout) findViewById(R.id.main_linear_view);
            log.setMovementMethod(new ScrollingMovementMethod());
            chat.addView(log); 
            setDefault();
    }
    public void setDefault(){
            Button btn = (Button) findViewById(R.id.start_recording_button);        
            btn.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                            startWriting(v);
            }
            });     
    }   
    public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
    }       
    public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {                                     
                            case R.id.home:
                            goHome();
                            return true;                                        
                            case R.id.general_setting:
                            generalSetting();
                            return true;
                            case R.id.server_settings:
                            serverSetting();
                            return true;
                            case R.id.audio_settings:
                            audioSetting();
                            return true;
                            default:
                            break;
            }
            return true;
    }       
    private void goHome() {
            Intent i = new Intent(MainActivity.this, home.class);
            startActivity(i);   
            finish();
    }
    private void generalSetting() {
            Intent i = new Intent(MainActivity.this, general.class);
            startActivity(i);
            finish();
    }

    private void audioSetting() {
            Intent i = new Intent(MainActivity.this, audio.class);
            startActivity(i);
            finish();
    }
    private void serverSetting() {
            Intent i = new Intent(MainActivity.this, server.class);
            startActivity(i);
            finish();
    } 


    public void startWriting(View view) { 
            logMessage("Hi all");
    }
    private void logMessage(String msg) {
            log.append(msg + "\n");
            final int scrollAmount = log.getLayout().getLineTop(log.getLineCount())- log.getHeight();
            if (scrollAmount > 0)
                            log.scrollTo(0, scrollAmount);
            else
                            log.scrollTo(0, 0);
    }
    }

2 个答案:

答案 0 :(得分:0)

这是因为您在更改活动时调用了“完成”。再次调用main活动会将其视图重新加载到其初始状态。

答案 1 :(得分:0)

除了MetaSnarf的回答:为了更深入地了解“Android任务堆栈”并保存当前的活动状态,您可能需要查看http://developer.android.com/guide/components/tasks-and-back-stack.html