我的应用程序的最小sdk是7,但我可以使用来自sdk版本11的DialogFragment,因为它位于我的lib目录中的支持库中.
我想制作类似这样的例子:http://developer.android.com/guide/topics/ui/controls/pickers.html
但我想使用NumberPicker小部件,它也来自sdk版本11,但我的应用程序不允许这样做.我是否必须添加其他支持库?
我该如何使用这个组件?
谢谢.
android android-dialogfragment numberpicker android-support-library
我想在我的ListView中显示这些itens
<string-array name="bookmark_titles">
<item>Google</item>
<item>Bing</item>
<item>Gmail</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)
我有一个获取这些值的方法.
public static Collection getBookmarks(Context context) {
Collection bookmarks = new Collection();
String[] titles = context.getResources().getStringArray(R.array.bookmark_titles);
for (int i = 0; i < titles.length; i ++) {
bookmarks.add(titles[i]);
}
return bookmarks;
}
Run Code Online (Sandbox Code Playgroud)
如何在main.java中调用方法getBookmarks来填充ListView?
我已经创建了一个ListView.它是:
<ListView
android:id="@+id/my_listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#ECECEC"
android:dividerHeight="1sp" />
Run Code Online (Sandbox Code Playgroud)
main.java我想做这样的事情:
ListView lv = (ListView) findViewById(R.id.my_listView);
ArrayList<Bookmark> my_array = BookmarkCollection.getTestBookmarks(context);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, my_array);
lv.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud) 在我的布局中,我有一个像这样的结构:
--RelativeLayout
|
--FrameLayout
|
--Button, EditText...
Run Code Online (Sandbox Code Playgroud)
我想在RelativeLayout和FrameLayout中处理触摸事件,所以我在这两个视图组中设置了onTouchListener.但只捕获RelativeLayout中的触摸.
为了尝试解决这个问题,我编写了自己的CustomRelativeLayout,并覆盖了onInterceptTouchEvent,现在捕获了子ViewGroup(FrameLayout)中的点击,但按钮和其他视图中的单击没有任何效果.
在我自己的自定义布局中,我有这个:
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
Run Code Online (Sandbox Code Playgroud) 我想在我的 Android 应用程序中嵌入一个 youtube 视频。它有一个Navigation Drawer,当这个抽屉被打开时,视频必须继续播放。而且我希望我的应用能够播放受版权限制的视频,例如来自Vevo 的视频。我的第一次尝试只是https://www.youtube.com/embed/VIDEO_ID使用 Chrome 客户端将嵌入 url ( )加载到WebView 中,但是对于许多视频,例如来自 Vevo 的视频,像这样,我看到以下消息:
This Video Contains content from Vevo. It is restricted from playback on certain sites
为了处理这个错误,我决定使用Youtube API。
在这个库的可用实现之间,我尝试了这些:
Android API 的优点是我可以播放具有上述限制的视频,但它被丢弃了,因为它的默认行为是播放器在打开抽屉时停止视频。
使用 Iframe API,我可以在抽屉打开时播放视频,但没有限制。
我最后的尝试是使用 Javascript API。目前我和iframe有同样的情况,就是不能播放有限制的视频。
但是我认为这是找到解决方案的正确方法。在api 参考中,他们建议使用SWFObject,但据我所知,没有可用于移动设备的闪光,如本答案中公开的那样。那么,还有另一种在我的 WebView 中嵌入视频的方法吗?
另一个疑问是:即使有“某些网站”的限制,移动网站如何才能播放来自 youtube 的视频?请理解,这里问的是谁对 Javascript 没有太多经验的 Android 开发人员。
目前,我有这段代码:
将加载播放器的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) 我正在开发一个警报器,它按定义的时间间隔振动。因此,如果我选择 5 秒,应用程序将每隔 5 秒振动一次。但我需要停止、暂停和恢复该应用程序。
这是我的课:
public class AndroidAlarmService extends Activity {
private PendingIntent pendingIntent;
private Chronometer chronometer;
private Intent myIntent;
AlarmManager alarmManager;
Calendar calendar;
private long mTimeWhenStopped;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonStart = (Button) findViewById(R.id.startalarm);
Button buttonStop = (Button) findViewById(R.id.stopalarm);
Button buttonPause = (Button) findViewById(R.id.pausealarm);
Button buttonResume = (Button) findViewById(R.id.resumealarm);
chronometer = ((Chronometer) findViewById(R.id.clock_time));
myIntent = new Intent(AndroidAlarmService.this,
MyAlarmService.class);
pendingIntent = PendingIntent.getService(
AndroidAlarmService.this, 0, myIntent, 0);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
calendar = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
我用这个方法启动它: …
我已经按照此链接中的说明设置了我的地图。并WRITE_EXTERNAL_STORAGE按照Android官方文档推荐的权限设置,即只为API级别18及以下请求此权限。所以,我有这个清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps"/>
<activity
android:name=".activities.HomeActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/map_api_key"/>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
但我正面临这个错误:
Caused by: java.lang.SecurityException: The Maps API requires the additional following
permissions to be set in the AndroidManifest.xml to ensure a …Run Code Online (Sandbox Code Playgroud) 我有一个viewpager,每个页面都必须显示不同的WebView.这个WebView应该允许horizontall scrool,我想在滚动完成时滑动到下一页.
我搜索过,并找到了一些解决方案,但我没有解决这个问题.我有一个CustomViewPager和一个CustomWebView来尝试处理滚动事件.
这是我的代码:
自定义ViewPager
public class WebViewPager extends ViewPager {
public WebViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if (v instanceof ExtendedWebView) {
return ((ExtendedWebView) v).canScrollHor(-dx);
} else {
return super.canScroll(v, checkV, dx, x, y);
}
}
}
Run Code Online (Sandbox Code Playgroud)
自定义WebView
public class ExtendedWebView extends WebView {
public ExtendedWebView(Context context) {
super(context);
}
public ExtendedWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean canScrollHor(int direction) …Run Code Online (Sandbox Code Playgroud) 我想将我的项目与Twitter集成.所以,我正在使用twitter4j.我正在使用gradle来管理依赖项.
目前,我正面临这个问题:
java.lang.NoClassDefFoundError: twitter4j.conf.ConfigurationBuilder
Run Code Online (Sandbox Code Playgroud)
我用Google搜索并找到了一个解决方案,即将"lib"文件夹的名称更改为"libs",但这适用于Eclipse.如何在Android Studio中解决此问题?
谢谢!
当我运行我的Android应用程序时,Eclipse会打开另一个与我正在使用的名称相同的AVD.
它不能只在当前的AVD中安装我的应用程序吗?
android ×9
alarmmanager ×1
eclipse ×1
html ×1
iframe ×1
javascript ×1
maps ×1
numberpicker ×1
scroll ×1
twitter4j ×1
viewgroup ×1
webview ×1
youtube-api ×1