2017-06-14 67 views
-2

我得到“尝试上的调用虚拟方法‘android.text.Editable android.widget.EditText.getText()’空对象引用“每当我点击按钮。请帮助“android.text.Editable android.widget.EditText.getText()”上的空对象引用

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

     edt = (EditText) findViewById(R.id.edit); 
     b1 = (Button) findViewById(R.id.button); 

     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(MainActivity.this, Main2Activity.class); 
       startActivity(i); 
      } 
     }) 
    } 

    String tt(){ 
     return (edt.getText()+""); 
    } 


public class Main2Activity extends AppCompatActivity { 
    MainActivity ob = new MainActivity(); 
    private WebView mywebview; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     mywebview=(WebView)findViewById(R.id.abc); 
     WebSettings webSettings=mywebview.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mywebview.loadUrl(ob.tt()); 
     mywebview.setWebViewClient(new WebViewClient()); 
    } 
} 

回答

1

MainActivity ob = new MainActivity();会得到你这个类而不是实际的当前正在运行如此ob在这种情况下无用的一个简单的对象,删除ob相关的代码,并使用Intent来传递数据

在第一MainActivity

b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(MainActivity.this, Main2Activity.class); 
       i.putExtra("data",edt.getText().toString()); 
       //    ^^^^ pass data 
       startActivity(i); 
      } 
     }) 

Main2Activity

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     mywebview=(WebView)findViewById(R.id.abc); 
     WebSettings webSettings=mywebview.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mywebview.loadUrl(getIntent().getStringExtra("data")); 
            // ^^^^^ 
     mywebview.setWebViewClient(new WebViewClient()); 
    } 

也读取How do I pass data between Activities in Android application?

相关问题