2015-05-07 120 views
-3
import android.app.ActionBar; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 


public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ActionBar.setDisplayShowHomeEnabled(false); 
    ActionBar.setDisplayShowTitleEnabled(false); 
    ActionBar.setCustomView(R.layout.custom_action_bar); 
    ActionBar.setDisplayShowCustomEnabled(true); 

    setContentView(R.layout.main); 
    } 
} 

四行包括动作条表示错误类型setDisplayShowHomeEnabled(布尔值):不能使静态参考setDisplayShowHomeEnabled(布尔值)的非静态方法从类型ActionBar。请帮助。无法使静态参考非静态方法从动作条

+0

您所调用的所有ActionBar方法都是_non-static_,这意味着您需要有一个ActionBar实例来调用它们。如果您使用类名称调用它们,则不具有该类的实例。正如其他人所提到的那样,您可以使用'getSupportActionBar()'获取该类的实例,并在其上运行命令。 –

回答

3

在全部四行中将ActionBar替换为getSupportActionBar()

0

所以移动super.onCreate(savedInstanceState);

setContentView(R.layout.main);后您而且,你不应该直接做这样的,

ActionBar.setDisplayShowHomeEnabled(false); 

它应该是,

ActionBar actionBar = getSupportActionBar(); 

actionBar.setDisplayShowHomeEnabled(false); 
actionBar.setDisplayShowTitleEnabled(false); 
actionBar.setCustomView(R.layout.custom_action_bar); 
actionBar.setDisplayShowCustomEnabled(true); 

,通过总结你的总码应是,

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ActionBar actionBar = getSupportActionBar(); 

    actionBar.setDisplayShowHomeEnabled(false); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setCustomView(R.layout.custom_action_bar); 
    actionBar.setDisplayShowCustomEnabled(true); 

    } 
} 
相关问题