在安卓的fragment中,以为可以使用activity中的点击和跳转事件,但其实不同
正常先声明
然后findviewbyid并跳转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class MainActivity extends AppCompatActivity { private button button @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,NextActivity.class); startActivity(intent); } }); } }
|
但是用到fragment里会报错,让我直呼好家伙!
这时需要getActivity()
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class homeFragment extends Fragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); CardView cardView = (CardView) getActivity().findViewById(R.id.into); cardView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(getActivity(),GBLOG.class); startActivity(intent); } }); } }
|
这时我们就可以在fragment中实现跳转了。
原因是fragment并不是一个Activity,需要获取当前Activity才能完成操作。