问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何在android开发使用ACTION

发布网友 发布时间:2022-04-23 04:48

我来回答

3个回答

懂视网 时间:2022-05-11 05:51

从Android 3.0开始除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。

Action Bar主要功能包含:

1. 显示选项菜单
2. 提供标签页的切换方式的导航功能,可以切换多个fragment.
3. 提供下拉的导航条目.
4. 提供交互式活动视图代替选项条目
5. 使用程序的图标作为返回Home主屏或向上的导航操作。

提示在你的程序中应用ActionBar需要注意几点,SDK和最终运行的固件必须是Android 3.0即honeycomb,在androidmanifest.xml文件中的uses-sdk元素中加入android:minSdkVersion 或android:targetSdkVersion,类似

< manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="eoe.android.cwj" 
android:versionCode="1" 
android:versionName="1.0"> 
< uses-sdk android:minSdkVersion="honeycomb" /> 
< application ... > 
 
< /application> 
< /manifest> 


如果需要隐藏Action Bar可以在你的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏ActionBar了,代码为:

< activity android:theme="@android:style/Theme.NoTitleBar"> 

一、添加活动条目 Action Items

  对于活动条目大家可以在下图看到Android 3.0的标题右部分可以变成工具栏,下面的Save和Delete就是两个Action Items活动条目。

  下面是一个menu的layout布局文件代码

< ?xml version="1.0" encoding="utf-8"?> 
< menu xmlns:android="http://schemas.android.com/apk/res/android"> 
< item android:id="@+id/menu_add" 
android:icon="@drawable/ic_menu_save" 
android:title="@string/menu_save" 
android:showAsAction="ifRoom|withText" /> 
< /menu> 

而其他代码类似Activity中的Menu,比如

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
switch (item.getItemId()) { 
case android.R.id.home: 
// 当Action Bar的图标被单击时执行下面的Intent 
Intent intent = new Intent(this, Android123.class); 
startActivity(intent); 
break; 
} 
return super.onOptionsItemSelected(item); 
} 

对于ActionBar的创建,可以在你的Activity中重写onStart方法:

@Override 
protected void onStart() { 
super.onStart(); 
ActionBar actionBar = this.getActionBar(); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); 
} 

调用getActionBar方式在你的Activity的onCreate中时需要注意必须在调用了setContentView之后。

二、添加活动视图 Action View

对于ActionView,我们可以在menu的布局文件使用中来自定义searchview布局,如下:

< item android:id="@+id/menu_search" 
android:title="Search" 
android:icon="@drawable/ic_menu_search" 
android:showAsAction="ifRoom" 
android:actionLayout="@layout/searchview" /> 

也可以直接指定Android系统中的SearchView控件,那么这时menu"_search的代码要这样写:

< item android:id="@+id/menu_search" 
android:title="Search" 
android:icon="@drawable/ic_menu_search" 
android:showAsAction="ifRoom" 
android:actionViewClass="android.widget.SearchView" /> 

大家注意上面的两种方法中一个属性是actionLayout制定一个layout xml布局文件,一个是actionViewClass指定一个类,最终调用可以在Activity中响应onCreateOptionsMenu方法映射这个menu布局即可.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.options, menu); 
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
return super.onCreateOptionsMenu(menu); 
} 

三、添加标签 Tabs

在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected、onTabUnselected和onTabReselected方法来关联Fragment。代码如下:

private class MyTabListener implements ActionBar.TabListener { 
 private TabContentFragment mFragment; 
 public TabListener(TabContentFragment fragment) { 
 mFragment = fragment; 
 } @Override 
 public void onTabSelected(Tab tab, FragmentTransaction ft) { 
 ft.add(R.id.fragment_content, mFragment, null); 
 } 
 @Override 
 public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
 ft.remove(mFragment); 
 } 
 @Override 
 public void onTabReselected(Tab tab, FragmentTransaction ft) { 
 } 
 
} 

接下来我们创建ActionBar在Activity中,代码如下;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
final ActionBar actionBar = getActionBar(); //提示getActionBar方法一定在setContentView后面 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); 
Fragment artistsFragment = new ArtistsFragment(); 
actionBar.addTab(actionBar.newTab().setText(R.string.tab_artists).setTabListener(new TabListener(artistsFragment))); 
Fragment albumsFragment = new AlbumsFragment(); 
actionBar.addTab(actionBar.newTab().setText(R.string.tab_albums).setTabListener(new TabListener(albumsFragment))); 
}

四、添加下拉导航 Drop-down Navigation:

创建一个SpinnerAdapter提供下拉选项,和Tab方式不同的是Drop-down只需要修改下setNavigationMode的模式,将ActionBar.NAVIGATION_MODE_TABS改为ActionBar.NAVIGATION_MODE_LIST,最终改进后的代码为

ActionBar actionBar = getActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
actionBar.setListNavigationCallbacks(mSpinnerAdapter, mNavigationCallback); 

上面我们通过setListNavigationCallbacks方法绑定一个SpinnerAdapter控件,具体的OnNavigationListener代码示例为;

mOnNavigationListener = new OnNavigationListener() { 
 String[] strings = getResources().getStringArray(R.array.action_list); 
 @Override 
 public boolean onNavigationItemSelected(int position, long itemId) { 
 ListContentFragment newFragment = new ListContentFragment(); 
 FragmentTransaction ft = openFragmentTransaction(); 
 ft.replace(R.id.fragment_container, newFragment, strings[position]); 
 ft.commit(); 
 return true; 
} 
 
}; 


而其中的ListContentFragment的代码为:

public class ListContentFragment extends Fragment { 
private String mText; 
 
@Override 
public void onAttach(Activity activity) { 
super.onAttach(activity); 
mText = getTag(); 
} 
 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
TextView text = new TextView(getActivity()); 
text.setText(mText); 
return text; 
} 
} 

五、实现切换Tabs标签;

Activity代码:

public class ActionBarTabs extends Activity { 
 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.action_bar_tabs); 
} 
 
public void onAddTab(View v) { 
final ActionBar bar = getActionBar(); 
final int tabCount = bar.getTabCount(); 
final String text = "Tab " + tabCount; 
 
bar.addTab(bar.newTab().setText(text) 
.setTabListener(new TabListener(new TabContentFragment(text)))); 
} 
 
public void onRemoveTab(View v) { 
final ActionBar bar = getActionBar(); 
bar.removeTabAt(bar.getTabCount() - 1); 
} 
 
public void onToggleTabs(View v) { 
final ActionBar bar = getActionBar(); 
 
if (bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) { 
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
 
bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE); 
} else { 
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); 
} 
} 
 
public void onRemoveAllTabs(View v) { 
getActionBar().removeAllTabs(); 
} 
 
private class TabListener implements ActionBar.TabListener { 
private TabContentFragment mFragment; 
public TabListener(TabContentFragment fragment) { 
 
mFragment = fragment; 
} 
 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
ft.add(R.id.fragment_content, mFragment, mFragment.getText()); 
} 
 
 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
ft.remove(mFragment); 
} 
 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
Toast.makeText(ActionBarTabs.this, "Reselected!", Toast.LENGTH_SHORT).show(); 
} 
 
} 
 
private class TabContentFragment extends Fragment { 
private String mText; 
public TabContentFragment(String text) { 
mText = text; 
} 
 
public String getText() { 
return mText; 
} 
   
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
View fragView = inflater.inflate(R.layout.action_bar_tab_content, container, false); 
TextView text = (TextView) fragView.findViewById(R.id.text); 
text.setText(mText); 
return fragView; 
} 
} 
} 

涉及的布局文件action_bar_tabs.xml代码为:

< ?xml version="1.0" encoding="utf-8"?> 
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 
 
< FrameLayout android:id="@+id/fragment_content" 
android:layout_width="match_parent" 
android:layout_height="0dip" 
android:layout_weight="1" /> 
 
< LinearLayout android:layout_width="match_parent" 
android:layout_height="0dip" 
android:layout_weight="1" 
android:orientation="vertical"> 
 
< Button android:id="@+id/btn_add_tab" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/btn_add_tab" 
android:onClick="onAddTab" /> 
 
< Button android:id="@+id/btn_remove_tab" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/btn_remove_tab" 
android:onClick="onRemoveTab" /> 
 
< Button android:id="@+id/btn_toggle_tabs" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/btn_toggle_tabs" 
android:onClick="onToggleTabs" /> 
 
< Button android:id="@+id/btn_remove_all_tabs" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/btn_remove_all_tabs" 
android:onClick="onRemoveAllTabs" /> 
< /LinearLayout> 
 
< /LinearLayout> 

布局文件action_bar_tab_content.xml;

< ?xml version="1.0" encoding="utf-8"?> 
< TextView xmlns:android="http://schemas.android.com/apk/res/android" 
 
android:id="@+id/text" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 

热心网友 时间:2022-05-11 02:59

需要注意几点,SDK和最终运行的固件必须是Android 3.0即honeycomb,在androidmanifest.xml文件中的uses-sdk元素中加入android:minSdkVersion 或android:targetSdkVersion,类似<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android123.cwj"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="honeycomb" />
<application ... >
...
</application>
</manifest>
如果需要隐藏Action Bar可以在的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏ActionBar了,代码为
<activity android:theme="<a href="http://my.oschina.net/asia" class="referer" target="_blank">@android</a> :style/Theme.NoTitleBar"
一、添加活动条目 Action Items
对于活动条目大家可以在下图看到Android 3.0的标题右部分可以变成工具栏,下面的Save和Delete就是两个Action Items活动条目

下面是一个menu的layout布局文件代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_add"
; android:icon="@drawable/ic_menu_save"
; android:title="@string/menu_save"
; android:showAsAction="ifRoom|withText" />
</menu>
而其他代码类似Activity中的Menu,比如
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// 当Action Bar的图标被单击时执行下面的Intent
Intent intent = new Intent(this, Android123.class);
startActivity(intent);
break;
}
return super.onOptionsItemSelected(item);
}

对于ActionBar的创建,可以在你的Activity中重写onStart方法
@Override
protected void onStart() {
super.onStart();
ActionBar actionBar = this.getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
}
调用getActionBar方式在你的Activity的onCreate中时需要注意必须在调用了setContentView之后。
二、添加活动视图 Action View
对于Action View你可以自己定义视图,比如搜索视图,android.widget.SearchView控件,
对于ActionView,我们可以在menu的布局文件使用中来自定义searchview布局,如代码
<item android:id="@+id/menu_search"
; android:title="Search"
android:icon="@drawable/ic_menu_search"
; android:showAsAction="ifRoom"
android:actionLayout="@layout/searchview" ;/>
也可以直接指定Android系统中的SearchView控件,那么这时menu”_search的代码要这样写
<item android:id="@+id/menu_search"
; android:title="Search"
android:icon="@drawable/ic_menu_search"
; android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView" />

两种方法中一个属性是actionLayout制定一个layout xml布局文件,一个是actionViewClass指定一个类,最终调用可以在Activity中响应onCreateOptionsMenu方法映射这个menu布局即可。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
return super.onCreateOptionsMenu(menu);
}

热心网友 时间:2022-05-11 04:17

可以自定义一个ActionBar导航栏的。其实就相当于不用系统的ActionBar就像是自己定义的titlebar一样

你可以共享下面的代码:

String shareBody = "Here is the share content body";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.share_using)));

所以你的全部代码(图片+文本)需要变成
private Uri imageUri;
private Intent intent;

imageUri = Uri.parse("android.resource://" + getPackageName()
+ "/drawable/" + "ic_launcher");

intent = new Intent(Intent.ACTION_SEND);
//text
intent.putExtra(Intent.EXTRA_TEXT, "Hello");
//image
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
//type of things
intent.setType("*/*");
//sending
startActivity(intent);
Uri imageUri = Uri.parse("android.resource://" + getPackageName()
+ "/drawable/" + "ic_launcher");
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello");
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));
如何在android开发使用ACTION

方法如下:1.前面有用使用Intent来控制 Service 2.使用的参数是Service的类 3.Service的启动/关闭还有另外一种方式来控制 4.通过Intent传入Action的参数 5.在manifest中注册一个Service并且设置一个action

如何在android开发使用ACTION

方法如下:前面有用使用Intent来控制 Service 使用的参数是Service的类 Service的启动/关闭还有另外一种方式来控制 通过Intent传入Action的参数 在manifest中注册一个Service并且设置一个action &lt;service android:enabled="true" android:exported="false" android:name="com.services.sev.PlayService...

如何在android开发使用ACTION

action就是隐式意思,例如调用Android文件管理器选择文件就是通过action来请求的. Intent intent= new Intent(Intent.ACTION_GET_CONTENT); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForR...

如何在android开发使用ACTION

一、添加活动条目 Action Items 对于活动条目大家可以在下图看到Android 3.0的标题右部分可以变成工具栏,下面的Save和Delete就是两个Action Items活动条目 下面是一个menu的layout布局文件代码 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;item android:id="@+id/menu_add"; android:icon="@d...

android中的action定义

action有自定义的,也有系统的。自定义的action,比如你要用到自定义的broadcastreceiver,一般就需要自定义的action,action的命名一般是包名+.+大写的标志;系统自带的action,你可以上网查下。

如何在android开发使用ACTION

可以自定义一个ActionBar导航栏的。其实就相当于不用系统的ActionBar就像是自己定义的titlebar一样 download.csdn.net/detail/u010469432/6804697这儿有源码,可以自己研究一下。

android 开发 怎样关屏幕与Intent.ACTION

把你要直接弹出的activity加上main属性,就可以直接intent调用显示,而不需要先启动main和launcher的主activity了。

如何自定义intent.action android

activity之间交替一般通过Intent,你可以显式的使用intent,将你想调用的activity指定了另一种就是隐式调用,依赖系统决定调用哪个activity,系统会查找各个acitvity intent-filter,找出action最匹配的activity,然后调用。就像找人一样,一种

...中有一个&lt;intent-filter&gt;里面包含&lt;action&gt;和&lt;category&gt;

&lt;action android:name="android.intent.action.MAIN" /&gt; --&gt; 表示这个activity是主入口,换句话说, 你只要启动这个应用程序,就要首先调用这个activity &lt;category android:name="android.intent.category.LAUNCHER" /&gt; --&gt; 表示这个activity种类,要加到LAUNCHER程序列表里。希望对你有用。

android编程中如何实现新建activity

A.创建一个android项目 B.创建一个新Activity 右键点击Eclipse左边(默认)你要加入Activity的包,比如,我的包是com.INdroid.layout。然后选New-&gt;Class,输入类名后(注意首字母大写),在Superclass的Browse那里点击。最后在Choose a type那里输入Activity。然后点OK就可以了.C. 创建Activity布局 在rec/...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
网线插座如何安装方法 无须的近义词和反义词是什么_无须是什么意思? PPT文件视图有几个? 求助很急,这个系列的图片叫什么 这个系列的韩国插画叫什么? 这种是什么类型的插画? 这个系列的图片,叫什么? 仙侠奇缘之花千骨广播剧 发到 852436014@qq.com 谢了~~ 斗罗大陆四大女主的辈分 吕薇个人荣誉 《我不想说》是哪部电视剧主题曲? 如何在Android中使用OpenCV 《我不想说,我是一只鸡》的原歌叫什么名字? 如何在android studio 如何在Android中使用汇编语言 如何在Android下使用JNI 如何评价杨钰莹《我不想说》这首歌? 我不想说链接(mp3杨钰莹) 如何在Android上编写高效的Java代码 杨钰莹的我不想说是几几年唱的 如何在android上运行Python代码 求画质清晰的我不想说 杨钰莹(2002演唱会)种子下载,谢谢 如何在android 建立linux环境 如何在Android中打开一个窗口 求杨钰莹《我不想说》mp3音乐百度云资源 如何在Android系统中集成第三方软件 如何在android系统中开启自己的服务 一首经典老歌《我不想说》永远经典,听哭了多少 如何在Android中添加系统服务 如何在Android设备上调试项目 母乳性黄疸怎么判断? 母乳性黄疸怎样辨别? 如何分辨母乳性黄疸症状?该怎么解决? 母乳性黄疸这种病,会出现什么特征吗? 母乳性黄疸的症状有哪些? 是普通的黄疸还是母乳性黄疸,要怎么去判断? 母乳性黄疸宝宝有什么症状诊断标准是什么?什么药对黄疸有效? 怎摸判断婴儿母乳性黄疸 怎么判断宝宝是不是母乳性黄疸 婴儿通过化验尿来判断母乳性黄疸 母乳性黄疸一般有什么症状 黄疸值超过 母乳性黄疸和生理性黄疸怎样区别 如何区分新生儿病理性黄疸和母乳性黄疸 母乳性黄疸是什么症状,有什么危害?怎么治疗? 在百度贴吧发帖子有什么规则和要求? 百度贴吧是什么意思啊? 电脑打开后,显示屏是黑色的怎么弄啊 百度贴吧有什么用?主要是做什么的? 显示器黑屏是什么原因? 百度贴吧到底是什么意思?
  • 焦点

最新推荐

猜你喜欢

热门推荐