关于AndroidgetActionBarvsgetSupportActionBar?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ActionBarDrawerToggle无法应用于A
关于Android getActionBar vs getSupportActionBar?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ActionBarDrawerToggle无法应用于Android.support.v7.widget.Toolbar、actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok、Android ActionBar setActionView布局问题、Android ActionBar(ActionBarCompat)Spinner下拉列表?等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- Android getActionBar vs getSupportActionBar?
- ActionBarDrawerToggle无法应用于Android.support.v7.widget.Toolbar
- actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok
- Android ActionBar setActionView布局问题
- Android ActionBar(ActionBarCompat)Spinner下拉列表?
Android getActionBar vs getSupportActionBar?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ //android.support.v7.app.ActionBar actionBar = getSupportActionBar(); //actionBar.setTitle("Android"); ActionBar actionBar = getActionBar(); actionBar.setTitle("Droid"); }
在使用getSupportActionBar()时,我的应用程序与kitkat和其他新版本运行良好,但使用getActionBar导致错误.
这是错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference at com.github.domain.geoquiz.QuizActivity.onCreate(QuizActivity.java:57) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2251) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372
为什么?来自android文档:
Caution: Be certain you import the ActionBar class (and related APIs)
from the appropriate package:If supporting API levels lower than 11:
import android.support.v7.app.ActionBarIf supporting only API level
11 and higher: import android.app.ActionBar
现在为什么这个应用程序崩溃了?
解决方法
您定位的是哪个Android版本?
我建议你使用新的Toolbar而不是ActionBar,因为它的使用方式更灵活.
ActionBarDrawerToggle无法应用于Android.support.v7.widget.Toolbar
错误说ActionBarDrawerToggle中的ActionBarDrawerToggle()无法应用于android.support.v7.widget.Toolbar然后在实际参数R.id.drawable_ic_drawer(int)下
import android.support.v7.app.ActionBarDrawerToggle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import android.support.v7.widget.Toolbar;
mDrawerToggle = new android.support.v7.app.ActionBarDrawerToggle( getActivity(),/* host Activity */ mDrawerLayout,/* DrawerLayout object */ R.drawable.ic_drawer,/* nav drawer image to replace 'Up' caret */ R.string.navigation_drawer_open,/* "open drawer" description for accessibility */ R.string.navigation_drawer_close /* "close drawer" description for accessibility */ ) {
据说造成错误的部分是R.drawer.ic_drawer.我该如何解决?
解决方法
android.support.v7.app.ActionBarDrawerToggle.ActionBarDrawerToggle(Activity activity,DrawerLayout drawerLayout,Toolbar toolbar,int openDrawerContentDescRes,int closeDrawerContentDescRes)
您正在传递R.drawable.ic_drawer drawable而不是工具栏,这就是您收到此错误的原因.
创建工具栏并将其添加为操作栏,并将此工具栏传递给此构造函数.
actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok
转载地址:http://stackoverflow.com/questions/11944855/actionbarsherlock-getsupportactionbar-return-null-in-android4-0-but-in-2-3-3-i
不想看那么多 E 文的:我直接说关键部分
找到
改完就可以了!
Android ActionBar setActionView布局问题
我一直在尝试使用ICS中ActionBar的setActionView
看起来它应该是直截了当但不知何故我没有得到我希望的布局对齐.如下图所示,“目标”图标在其布局中正确居中.但是当我setActionBar(progress)时,无论我尝试什么,进度视图总是与右边对齐.
在单击菜单项之前和之后,有两种状态.如您所见,进度视图始终与右侧对齐.我已经尝试将我的进度布局xml中的重力选项从左到右更改为中心,无论我做什么改变它似乎都没有改变任何东西.
我没有找到关于这个问题的任何信息,所以我想我一定做错了.
有人有线索吗?
谢谢您的帮助!
这是我的操作栏菜单布局’action_bar_menu.xml’
这是我的进度条布局’inderterminate_progress.xml’
ravity="center">
ravity="center"
android:indeterminate="true"/>
最后这是我的testx活动
public class HelloAndroidActivity extends Activity {
/**
* Called when the activity is first created.
* @param savedInstanceState If the activity is being re-initialized after
* prevIoUsly being shut down then this Bundle contains the data it most
* recently supplied in onSaveInstanceState(Bundle). noptionsItemSelected(MenuItem item) {
super.onoptionsItemSelected(item);
if (R.id.locate == item.getItemId()) {
final MenuItem menuItem = item.setActionView(R.layout.inderterminate_progress);
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(3000);
runOnUiThread(new Runnable() {
@Override
public void run() {
menuItem.setActionView(null);
}
});
}
}).start();
}
return true;
}
}
最佳答案
似乎明确定义样式并在布局的根中添加4dip填充以进行膨胀,如下所示解决了这个问题
ravity="center"
android:paddingLeft="4dip"
android:paddingRight="4dip"/>
这似乎在android stylesheet here中使用
Android ActionBar(ActionBarCompat)Spinner下拉列表?
我正在使用像这样的微调器布局,
<Spinner android:id="@+id/SpinnerList" android:layout_width="fill_parent" android:layout_height="wrap_content" />
我的代码,
public class MainActivity extends ActionBaractivity implements OnItemSelectedListener{ private boolean mAlternateTitle = false; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); Spinner spinner = (Spinner) findViewById(R.id.SpinnerList); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromresource(this,R.array.locations,android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setonItemSelectedListener(this); } }
它在我的android galaxy ace中显示正常的微调器.我需要输出如下所示,
是那个位置android 2.3.请给出建议.
谢谢.
解决方法
在menu / main.xml中:
<item android:id="@+id/menu_spinner1" android:showAsAction="always" android:orderInCategory="1" android:actionView>
在活动中:
private MenuItem mSpinnerItem1 = null; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. MenuInflater mi=getMenuInflater(); mi.inflate(R.menu.main,menu); mSpinnerItem1 = menu.findItem( R.id.menu_spinner1); View view1 = mSpinnerItem1.getActionView(); if (view1 instanceof Spinner) { final Spinner spinner = (Spinner) view1; spinner.setAdapter(ad1); spinner.setonItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0,View arg1,int arg2,long arg3) { // Todo Auto-generated method stub } @Override public void onnothingSelected(AdapterView<?> arg0) { // Todo Auto-generated method stub } }); } return true; }
关于Android getActionBar vs getSupportActionBar?的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于ActionBarDrawerToggle无法应用于Android.support.v7.widget.Toolbar、actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok、Android ActionBar setActionView布局问题、Android ActionBar(ActionBarCompat)Spinner下拉列表?的相关信息,请在本站寻找。
本文标签: