下面的一个例子是通过一个button跳转到百度地图的界面,全部通过android原生来实现!
1.在预跳转Activity类中添加下面的设定:
需要在类的最上面添加定义:
private Button baidu_map;
在initViews方法中添加监听器:
baidu_map = getView(R.id.baidu_map); baidu_map.setOnClickListener(this);
在第一个页面中的onClick方法中 添加case情况:
case R.id.baidu_map: startAnimActivity(LeaderScheduleTestMapActivity.class); break;
2. 在LeaderScheduleTestMapActivity.java文件中写相应的代码:
`setContentView(R.layout.test_layout);`
3. 在test_layout.xml文件中添加下面的代码:
由于代码中引用了返回功能,需要在xml文件中引入common_title_header:
<include layout="@layout/common_title_header"/>
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
4. 注册监听:在AndroidManifest.xml中注册:
<activity android:name=".leader.schedule.activity.LeaderScheduleTestMapActivity" android:screenOrientation="portrait" />
------------------完整代码如下--------------:
- 预跳转页面MainActivity.java
public class MainActivity extends BaseActivity implements View.OnClickListener{ private RecyclerView mVoiceRecylerView; private Button baidu_map;
@Override
public void doCallback(String eventId, String jsonData) {
super.doCallback(eventId, jsonData);
}@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.leader_schedule_customer_voice_activity); initTitle(getString(R.string.leader_schedule_contact_history_title_customer_voice)); initViews(); }
private void initViews() {
findViewById(R.id.leader_schedule_contact_history_voice_rv);
baidu_map = getView(R.id.baidu_map);
baidu_map.setOnClickListener(this);
btn_back.setVisibility(View.VISIBLE);
btn_back.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_back:
onBackPressed();
break;
case R.id.baidu_map:
startAnimActivity(LeaderScheduleTestMapActivity.class);
break;
}
}
}`
- 跳转到页面 MainActivity2.java
`
public class MainActivity2 extends BaseActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_layout);
initTitle("测试百度地图");
initViews();
}
private void initViews() {
// mVoiceRecylerView = (RecyclerView) findViewById(R.id.leader_schedule_contact_history_voice_rv);
// TextView textView = (TextView)findViewById(R.id.text1);
// textView.setText("abc");
btn_back.setVisibility(View.VISIBLE);
btn_back.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_back:
onBackPressed();
break;
}
}
}
`
- test_layout.xml文件代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/common_title_header"/> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
注意点和经验分析:
所写的java类一定要注册监听:在AndroidManifest.xml中注册: 否者会无响应报错
<activity
android:name=".leader.schedule.activity.LeaderScheduleTestMapActivity"
android:screenOrientation="portrait" />如果页面有引用其他的layout,一定要引入进来。否者运行的时候,会报空指针异常。
<include layout="@layout/common_title_header"/>如果看错误信息,在最下面中的Android Monitor中进行查看,如果是报错,请直接调控级别为Error,便于查看错误信息。
如果看Android Studio的版本信息,可以点击项目app - Show history即可看到历史信息。