如何从另一个活动改变的TextView? [英] How can I change TextView from another activity?

查看:184
本文介绍了如何从另一个活动改变的TextView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从另一个活动改变的TextView但不工作

MainActivity(带的TextView)

 公共静态的TextView textViewObj;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(layout.activity_main);    textViewObj =(的TextView)findViewById(id.textView10);

这是在的onClick其他活动:

 公共无效onClick8(查看视图){
    //这里是ONCLICK MEHOD当我点击文本更改为另一个TEXT
    MainActivity.textViewObj.setText(文本变);
    //结束
    意图myIntent =新意图(view.getContext(),MainActivity.class);
    startActivity(myIntent);
    完();
    MediaPlayer的媒体播放器= MediaPlayer.create(zem13.this,R.raw.dobre);
    mediaPlayer.start();    }

logcat的更新
当我运行写机器人工作室:
当我运行写机器人工作室:
当我运行写的android演播室:

  03-16 16:45:43.750一七零三年至1703年/ com.example.tom.kvz D / dalvikvm:不晚启用CheckJNI(已上)
03-16 16:45:43.880一七零三年至1710年/ com.example.tom.kvz E / JDWP:无法发送回复调试器:断的管
03-16 16:45:43.880一七零三年至1710年/ com.example.tom.kvz D / dalvikvm:调试器分离;对象注册了1项
03-16 16:45:43.890一七○三年至1703年/ com.example.tom.kvz D / dalvikvm:GC_FOR_ALLOC释放65K,5%的游离3417K / 3560K,暂停0毫秒,2毫秒总
03-16 16:45:43.940 1703年至1706年/ com.example.tom.kvz D / dalvikvm:GC_CONCURRENT释放< 1K,4%免​​费3823K / 3968K,暂停49ms + 1毫秒,总51ms
03-16 16:45:43.980一七○三年至1703年/ com.example.tom.kvz D / dalvikvm:GC_FOR_ALLOC释放< 1K,4%免​​费4229K / 4372K,暂停为35ms,共为35ms
03-16 16:45:44.000 1703年至1706年/ com.example.tom.kvz D / dalvikvm:GC_CONCURRENT释放< 1K,4%免​​费4430K / 4576K,暂停19ms + 1毫秒,22毫秒总
03-16 16:45:44.160一七○三年至1703年/ com.example.tom.kvz D / dalvikvm:GC_FOR_ALLOC释放< 1K,4%免​​费4432K / 4576K,暂停47ms,总47ms
03-16 16:45:44.160一七○三年至1703年/ com.example.tom.kvz I / dalvikvm堆:堆成长(frag的情况下),以6.560MB为2266284字节分配
03-16 16:45:44.250 1703至13年/ com.example.tom.kvz D / dalvikvm:GC_FOR_ALLOC释放< 1K,3%的自由6645K / 6792K,暂停87ms,总87ms
03-16 16:45:44.270 1703年至1706年/ com.example.tom.kvz D / dalvikvm:GC_CONCURRENT释放0K,3%的自由6645K / 6792K,暂停17MS + 0毫秒,20毫秒总
03-16 16:45:44.580 1703年至1706年/ com.example.tom.kvz D / dalvikvm:GC_CONCURRENT释放36K,2%自由7662K / 7776K,暂停19ms + 1毫秒,22毫秒总
03-16 16:45:44.590一七○三年至1703年/ com.example.tom.kvz W / GooglePlayServicesUtil:谷歌Play服务的缺失。
03-16 16:45:44.600一七○三年至1703年/ com.example.tom.kvz W / GooglePlayServicesUtil:谷歌Play服务的缺失。
03-16 16:45:44.600一七○三年至1703年/ com.example.tom.kvz V / WebViewChromium:绑定铬主尺蠖活套(主,TID 1){} b1028e58
03-16 16:45:44.650一七○三年至1703年/ com.example.tom.kvz I /铬:[信息:library_loader_hooks.cc(112)]铬启用日志记录:级别= 0,默认的冗长= 0
03-16 16:45:44.650一七○三年至1703年/ com.example.tom.kvz I / BrowserProcessMain:初始化铬工艺,渲染= 0
03-16 16:45:45.460 1703年至1756年/ com.example.tom.kvz W /铬:[警告:proxy_service.cc(888)] PAC支持禁用的,因为没有系统的实现
03-16 16:45:45.680一七○三年至1703年/ com.example.tom.kvz D /:HostConnection ::得到()新主机连接建立0xb821be30,TID 1703
03-16 16:45:45.770一七○三年至1703年/ com.example.tom.kvz I /广告:启动广告请求。
03-16 16:45:45.770一七○三年至1703年/ com.example.tom.kvz I /广告:使用AdRequest.Builder.addTestDevice(B3EEABB8EE11C2BE770B684D95219ECB)来获取此设备上测试广告。
03-16 16:45:45.790一七○三年至1703年/ com.example.tom.kvz D / AndroidRuntime:关闭VM
03-16 16:45:45.790一七○三年至1703年/ com.example.tom.kvz W / dalvikvm:主题ID = 1:螺纹未捕获的异常退出(组= 0xb0d11b20)
03-16 16:45:45.790一七○三年至1703年/ com.example.tom.kvz E / AndroidRuntime:致命异常:主要
    工艺:com.example.tom.kvz,PID:1703
    了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.tom.kvz / com.example.tom.kvz.MainActivity}:显示java.lang.NullPointerException
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
            在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
            在android.os.Handler.dispatchMessage(Handler.java:102)
            在android.os.Looper.loop(Looper.java:136)
            在android.app.ActivityThread.main(ActivityThread.java:5017)
            在java.lang.reflect.Method.invokeNative(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:515)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            在dalvik.system.NativeStart.main(本机方法)
     显示java.lang.NullPointerException:产生的原因
            在com.example.tom.kvz.MainActivity.onCreate(MainActivity.java:30)
            在android.app.Activity.performCreate(Activity.java:5231)
            在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os.Looper.loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5017)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
03-16 16:45:45.850 1703年至1735年/ com.example.tom.kvz D / dalvikvm:DexOpt:--- BEGINads952707653.jar(引导= 0)---
03-16 16:45:45.960 1703年至1735年/ com.example.tom.kvz D / dalvikvm:DexOpt:--- ENDads952707653.jar(成功)---
03-16 16:45:45.960 1703年至1735年/ com.example.tom.kvz D / dalvikvm:DEX preP'/data/data/com.example.tom.kvz/cache/ads952707653.jar:解压在0毫秒,改写116ms


解决方案

您可以使用以从一个活动数据发送给其他。

要发送包。

 捆绑包=新包();
bundle.putString(姓名,文本改变); //这是一个字符串
意图I =新意图(CurrentActivity.this,MainActivity.class);
i.putExtras(包);
startActivity(ⅰ);

接收包,并在MainActivity设置为的TextView

 捆绑包= NULL;
捆绑= this.getIntent()getExtras()。
字符串的myString = bundle.getString(姓名); //这是字符串
textViewObj.setText(myString的);

修改 - 三江源@squonk您的建议

使用此字符串发送到MainActivity ...

 意向书I =新意图(CurrentActivity.this,MainActivity.class);
i.putExtra(姓名,文本改变);

要获得字符串中MainActivity

 演员= getIntent()getExtras()。
字符串的myString = extras.getString(名称);
textViewObj.setText(myString的);

UPDATE2

首先删除这些进口2

 进口静态com.example.tom.kvz.R.id;
引入静态com.example.tom.kvz.R.layout;

然后,它应该是

  textViewObj =(的TextView)findViewById(R.id.textView10);
AdView的mAdView =(的AdView)findViewById(R.id.adView);

所以,这应该是你MainActivity

 公共类MainActivity延伸活动{
    公共静态的TextView textViewObj;
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(layout.activity_main);        textViewObj =(的TextView)findViewById(R.id.textView10);        AdView的mAdView =(的AdView)findViewById(R.id.adView);
        AdRequest中AdRequest中=新AdRequest.Builder()建立()。
        mAdView.loadAd(AdRequest中);        如果(getIntent()。getExtras()。获得(名称)!= NULL)
                textViewObj.setText(。(整数)getIntent()getExtras()获得(名字));    }
    @覆盖
    保护无效onResume(){
        // TODO自动生成方法存根        super.onResume();
    }        公共无效onClick17(查看视图){
        意图myIntent =新意图(view.getContext(),kviz.class);
        startActivity(myIntent);
        完();        }
    }

I want to change textview from another activity but that don't work

MainActivity (With textview)

public static TextView textViewObj;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(layout.activity_main);

    textViewObj = (TextView) findViewById(id.textView10);

This is onClick in another activity:

public void onClick8 (View view) {
    //HERE IS ONCLICK MEHOD WHEN I CLICK TEXT CHANGE TO ANOTHER TEXT
    MainActivity.textViewObj.setText("Text change");
    //END
    Intent myIntent = new Intent(view.getContext(), MainActivity.class);
    startActivity(myIntent);
    finish();
    MediaPlayer mediaPlayer = MediaPlayer.create(zem13.this, R.raw.dobre);
    mediaPlayer.start();

    }

LOGCAT UPDATE When I run android studio that write this: When I run android studio that write this: When I run android studio that write this:

03-16 16:45:43.750    1703-1703/com.example.tom.kvz D/dalvikvm﹕ Not late-enabling CheckJNI (already on)
03-16 16:45:43.880    1703-1710/com.example.tom.kvz E/jdwp﹕ Failed sending reply to debugger: Broken pipe
03-16 16:45:43.880    1703-1710/com.example.tom.kvz D/dalvikvm﹕ Debugger has detached; object registry had 1 entries
03-16 16:45:43.890    1703-1703/com.example.tom.kvz D/dalvikvm﹕ GC_FOR_ALLOC freed 65K, 5% free 3417K/3560K, paused 0ms, total 2ms
03-16 16:45:43.940    1703-1706/com.example.tom.kvz D/dalvikvm﹕ GC_CONCURRENT freed <1K, 4% free 3823K/3968K, paused 49ms+1ms, total 51ms
03-16 16:45:43.980    1703-1703/com.example.tom.kvz D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 4% free 4229K/4372K, paused 35ms, total 35ms
03-16 16:45:44.000    1703-1706/com.example.tom.kvz D/dalvikvm﹕ GC_CONCURRENT freed <1K, 4% free 4430K/4576K, paused 19ms+1ms, total 22ms
03-16 16:45:44.160    1703-1703/com.example.tom.kvz D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 4% free 4432K/4576K, paused 47ms, total 47ms
03-16 16:45:44.160    1703-1703/com.example.tom.kvz I/dalvikvm-heap﹕ Grow heap (frag case) to 6.560MB for 2266284-byte allocation
03-16 16:45:44.250    1703-1713/com.example.tom.kvz D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 3% free 6645K/6792K, paused 87ms, total 87ms
03-16 16:45:44.270    1703-1706/com.example.tom.kvz D/dalvikvm﹕ GC_CONCURRENT freed 0K, 3% free 6645K/6792K, paused 17ms+0ms, total 20ms
03-16 16:45:44.580    1703-1706/com.example.tom.kvz D/dalvikvm﹕ GC_CONCURRENT freed 36K, 2% free 7662K/7776K, paused 19ms+1ms, total 22ms
03-16 16:45:44.590    1703-1703/com.example.tom.kvz W/GooglePlayServicesUtil﹕ Google Play services is missing.
03-16 16:45:44.600    1703-1703/com.example.tom.kvz W/GooglePlayServicesUtil﹕ Google Play services is missing.
03-16 16:45:44.600    1703-1703/com.example.tom.kvz V/WebViewChromium﹕ Binding Chromium to the main looper Looper (main, tid 1) {b1028e58}
03-16 16:45:44.650    1703-1703/com.example.tom.kvz I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
03-16 16:45:44.650    1703-1703/com.example.tom.kvz I/BrowserProcessMain﹕ Initializing chromium process, renderers=0
03-16 16:45:45.460    1703-1756/com.example.tom.kvz W/chromium﹕ [WARNING:proxy_service.cc(888)] PAC support disabled because there is no system implementation
03-16 16:45:45.680    1703-1703/com.example.tom.kvz D/﹕ HostConnection::get() New Host Connection established 0xb821be30, tid 1703
03-16 16:45:45.770    1703-1703/com.example.tom.kvz I/Ads﹕ Starting ad request.
03-16 16:45:45.770    1703-1703/com.example.tom.kvz I/Ads﹕ Use AdRequest.Builder.addTestDevice("B3EEABB8EE11C2BE770B684D95219ECB") to get test ads on this device.
03-16 16:45:45.790    1703-1703/com.example.tom.kvz D/AndroidRuntime﹕ Shutting down VM
03-16 16:45:45.790    1703-1703/com.example.tom.kvz W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb0d11b20)
03-16 16:45:45.790    1703-1703/com.example.tom.kvz E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.tom.kvz, PID: 1703
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tom.kvz/com.example.tom.kvz.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.example.tom.kvz.MainActivity.onCreate(MainActivity.java:30)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
03-16 16:45:45.850    1703-1735/com.example.tom.kvz D/dalvikvm﹕ DexOpt: --- BEGIN 'ads952707653.jar' (bootstrap=0) ---
03-16 16:45:45.960    1703-1735/com.example.tom.kvz D/dalvikvm﹕ DexOpt: --- END 'ads952707653.jar' (success) ---
03-16 16:45:45.960    1703-1735/com.example.tom.kvz D/dalvikvm﹕ DEX prep '/data/data/com.example.tom.kvz/cache/ads952707653.jar': unzip in 0ms, rewrite 116ms

解决方案

You can use bundles to send data from one activity to other.

To send bundle.

Bundle bundle = new Bundle();
bundle.putString("Name","Text Change"); //This is for a String
Intent i=new Intent(CurrentActivity.this, MainActivity.class);
i.putExtras(bundle);
startActivity(i);

to receive the bundle and set it to the TextView in the MainActivity

Bundle bundle = null;
bundle = this.getIntent().getExtras();
String myString = bundle.getString("Name");//this is for String 
textViewObj.setText(myString ); 

EDIT - Thankyou @squonk for the suggestion

OR

Use this to send the string to MainActivity...

Intent i = new Intent(CurrentActivity.this, MainActivity.class);   
i.putExtra("Name", "Text Change");

To receive the string in MainActivity

extras = getIntent().getExtras();
String myString = extras.getString("Name");
textViewObj.setText(myString );

UPDATE2

First of all remove these 2 imports

import static com.example.tom.kvz.R.id;
import static com.example.tom.kvz.R.layout;

then, it should be

textViewObj = (TextView) findViewById(R.id.textView10);
AdView mAdView = (AdView) findViewById(R.id.adView);

So,This should be your MainActivity

public class MainActivity extends Activity {
    public static TextView textViewObj;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(layout.activity_main);

        textViewObj = (TextView) findViewById(R.id.textView10);

        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

        if(getIntent().getExtras().get("name") != null)
                textViewObj.setText((Integer) getIntent().getExtras().get("name"));

    }
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub

        super.onResume();
    }

        public void onClick17(View view) {
        Intent myIntent = new Intent(view.getContext(), kviz.class);
        startActivity(myIntent);
        finish();



        }
    }

这篇关于如何从另一个活动改变的TextView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆