抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在安卓的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);
}
});
}
}
//部分代码来源于csdn yong_zi

但是用到fragment里会报错,让我直呼好家伙!

1
无法解析符号MainActivity

这时需要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才能完成操作。

评论