我是android的新手,我正在尝试使用该库实现选项卡式操作栏appcompat v7。 我有setTabListener方法的问题。 这是代码
主要活动
package net.sgoliver.android.actionbartabs;
import android.app.Fragment;
import android.os.Bundle;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Obtenemos una referencia a la actionbar
final ActionBar abar = getSupportActionBar();
//Establecemos el modo de navegación por pestañas
abar.setNavigationMode(
ActionBar.NAVIGATION_MODE_TABS);
//Ocultamos el título de la actividad
//abar.setDisplayShowTitleEnabled(false);
//Creamos las pestañas
ActionBar.Tab tab1 =
abar.newTab().setText("Tab 1");
ActionBar.Tab tab2 =
abar.newTab().setText("tab2");
//Creamos los fragments de cada pestaña
Fragment tab1frag = new Tab1Fragment();
Fragment tab2frag = new Tab2Fragment();
//Asociamos los listener a las pestañas
tab1.setTabListener(new MiTabListener(tab1frag));
tab2.setTabListener(new MiTabListener(tab2frag));
//Añadimos las pestañas a la action bar
abar.addTab(tab1);
abar.addTab(tab2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_new:
Log.i("ActionBar", "Nuevo!");
return true;
case R.id.menu_save:
Log.i("ActionBar", "Guardar!");;
return true;
case R.id.menu_settings:
Log.i("ActionBar", "Settings!");;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
和MiTabListener类
package net.sgoliver.android.actionbartabs;
import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.util.Log;
public class MiTabListener implements ActionBar.TabListener {
private Fragment fragment;
public MiTabListener(Fragment fg)
{
this.fragment = fg;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Log.i("ActionBar", tab.getText() + " reseleccionada.");
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Log.i("ActionBar", tab.getText() + " seleccionada.");
ft.replace(R.id.contenedor, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
Log.i("ActionBar", tab.getText() + " deseleccionada.");
ft.remove(fragment);
}
}
这就是我有的问题
“ActionBar.Tab类型中的方法setTabListener(ActionBar.TabListener)不适用于参数(MiTabListener)”
谢谢!
答案 0 :(得分:0)
你的问题在于进口。在你的听众中,他们不是来自支持库。