按照你的方法终于改正了这个错误了,谢谢!但我不太明白,为什么我这样指定确不行呢? 刚编译了一下,还是出现那个空指针异常,这又是那个的异常···Activity01的代码如下:package weo.activity01;import android.support.v7.app.ActionBarActivity; import android.support.v4.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; public class Activity01 extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity01); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity01, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_activity01, container, false); Button myButton = (Button)rootView.findViewById(R.id.myButton); myButton.setOnClickListener(new MyButtonListener()); return rootView; } class MyButtonListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub //生成一个Intent对象 Intent intent = new Intent(); intent.setClass(getActivity(), OtherActivity.class); Activity01.PlaceholderFragment.this.startActivity(intent); } }
刚编译了一下,还是出现那个空指针异常,这又是那个的异常···Activity01的代码如下:package weo.activity01;import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
public class Activity01 extends ActionBarActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity01);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
} @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity01, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} /**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() {
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_activity01,
container, false);
Button myButton = (Button)rootView.findViewById(R.id.myButton);
myButton.setOnClickListener(new MyButtonListener());
return rootView;
}
class MyButtonListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//生成一个Intent对象
Intent intent = new Intent();
intent.setClass(getActivity(), OtherActivity.class);
Activity01.PlaceholderFragment.this.startActivity(intent);
} }
}
}错误信息:
改成
Activity01.this.startActivity(intent);
Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了
我也知道要继承context类,但就是不知道该怎么写。如果我写为intent.setClass(Activity01.PlaceholderFragment.this, OtherActivity.class); 就会说setClass不能用
如果写为intent.setClass(getActivity(), OtherActivity.class); 语法上没错误,但编译时空指针出错,我猜应该是找不到正确的context类。我上网查了一下,说可以指定全路径,但怎么指定,如果指定全路径会不会显得代码太长了?我这个context该怎么写呢?在此谢谢各位大虾的帮助
Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了你的PlaceholderFragment是继承Activity?还是Fragment?而且你引用错了...我是回复再getActivity().startActivity(intent)......
Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了你的PlaceholderFragment是继承Activity?还是Fragment?而且你引用错了...我是回复再getActivity().startActivity(intent)......问题好严重,但还是谢谢了。我再研究研究