Questions tagged «android»

Android是Google的移动操作系统,用于对数字设备(智能手机,平板电脑,汽车,电视,Wear,Glass和IoT)进行编程或开发。对于与Android相关的主题,请使用特定于Android的标签,例如android-intent,android-activity,android-adapter等。对于与开发或编程无关但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。

15
Android Studio渲染问题
我使用的是Android Studio 0.2.3,正常打开活动布局时,预览应显示在右侧,以便我可以在文本模式和设计模式之间切换,后者应再次显示布局的预览。 但是,无论是在文本模式下还是在设计模式下,都不会在右侧显示预览。我只是得到错误rendering problems... 当我编译所有内容并在设备上安装该应用程序时,它可以正常工作而没有任何错误。对于开发和试验布局,如果可以使预览正常工作,那仍然会很好。 我也曾尝试在工作室中的不同设备之间切换,但是没有成功。 有谁知道如何解决这个问题?

6
如何使用不同的片段/布局实现ViewPager
当我启动实现viewpager的活动时,viewpager会创建各种片段。我想为每个片段使用不同的布局,但是问题是viewpager最多只显示两个布局(1之后所有其余片段的第二个布局)。 这是SwipeActivity的代码,该代码实现了viewpager: public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends FragmentPagerAdapter { public MyPageAdapter(FragmentManager fm) { super(fm); } @Override …

30
Android-错误:任务':app:transformClassesWithDexForRelease'的执行失败
问题是,debug当我切换到release模式时,我能够运行我的应用程序,但切换到模式时,它会失败。 例外: **FAILURE: Build failed with an exception.** > Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 当我用stacktrace运行gradle build命令时,这就是我得到的 ./gradlew app:transformClassesWithDexForRelease --stacktrace > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 *Exception …

14
getActivity()在Fragment函数中返回null
我有一个带有这样的公共方法的片段(F1) public void asd() { if (getActivity() == null) { Log.d("yes","it is null"); } } 是的,当我从“活动”中调用它时,它为null ... FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1(); transaction1.replace(R.id.upperPart, f1); transaction1.commit(); f1.asd(); 一定是我做错了什么,但我不知道那是什么

7
Google Maps Android API v2-交互式信息窗口(例如原始的android Google地图)
InfoWindow在使用新的Google Maps API v2单击标记后,我试图进行自定义。我希望它看起来像Google的原始地图应用程序。像这样: 当我ImageButton进入内部时,它不起作用-整个InfoWindow被选中,而不仅仅是ImageButton。我读到这是因为没有它View本身,而是快照,所以不能将各个项目区分开。 编辑: 在文档中(感谢Disco S2): 如上一节有关信息窗口的部分所述,信息窗口不是实时视图,而是将视图作为图像渲染到地图上。因此,您在视图上设置的所有侦听器都将被忽略,并且您无法区分视图各部分上的单击事件。建议您不要在自定义信息窗口中放置交互式组件,例如按钮,复选框或文本输入。 但是,如果Google使用它,则必须有某种方法可以实现它。有人有什么主意吗?

10
为什么“ System.out.println”在Android中不起作用?
我想在控制台中打印某些内容,以便对其进行调试。但是由于某种原因,我的Android应用程序中没有任何内容。 那我该如何调试? public class HelloWebview extends Activity { WebView webview; private static final String LOG_TAG = "WebViewDemo"; private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) …

10
画布上的Android Center文本
我正在尝试使用下面的代码显示文本。问题是文本没有水平居中。当我为设置坐标时drawText,它将在此位置设置文本的底部。我希望绘制文本,以便文本也水平居中。 这是进一步显示我的问题的图片: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //canvas.drawRGB(2, 2, 200); Paint textPaint = new Paint(); textPaint.setARGB(200, 254, 0, 0); textPaint.setTextAlign(Align.CENTER); textPaint.setTypeface(font); textPaint.setTextSize(300); canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2 , textPaint); }

8
Android Paint:.measureText()与.getTextBounds()
我正在使用来测量文本Paint.getTextBounds(),因为我有兴趣获取要渲染的文本的高度和宽度。但是,实际呈现的文本始终比填充.width()的Rect信息的宽度稍宽getTextBounds()。 令我惊讶的是,我测试了.measureText(),发现它返回了一个不同的值(更高)。我尝试了一下,发现它是正确的。 他们为什么报告不同的宽度?如何正确获取高度和宽度?我的意思是,我可以使用.measureText(),但是我不知道是否应该信任.height()返回的getTextBounds()。 根据要求,以下是用于重现此问题的最少代码: final String someText = "Hello. I believe I'm some text!"; Paint p = new Paint(); Rect bounds = new Rect(); for (float f = 10; f < 40; f += 1f) { p.setTextSize(f); p.getTextBounds(someText, 0, someText.length(), bounds); Log.d("Test", String.format( "Size %f, measureText %f, getTextBounds %d", f, …


8
卸载并重新安装后,Android应用程序会记住其数据
在开发针对4.1以上所有版本的Android应用程序时,我发现卸载并重新安装应用程序不会清除其数据。 该应用程序旨在将其询问的详细信息存储在其第一个屏幕中。在OS版本4.4.4中卸载并再次安装后,该应用程序会提示用户填写数据,这是正常的。但是,在6.0版中,相同的安装/卸载顺序将恢复原始输入的数据。 我试图通过访问来确保/data/data/my package folder卸载后数据库消失,并且确实在卸载过程中删除了该文件夹。 我试图通过Titanium Backup访问设置页面来删除该应用程序,结果是相同的。设备植根于运行v6.0的Nexus 5。 这种奇怪行为的原因可能是什么?

8
升级到Android 8.1后,startForeground失败
将手机升级到8.1 Developer Preview之后,我的后台服务无法正常启动。 在长期运行的服务中,我实现了startForeground方法来启动正在进行的通知,该通知在create时被调用。 @TargetApi(Build.VERSION_CODES.O) private fun startForeground() { // Safe call, handled by compat lib. val notificationBuilder = NotificationCompat.Builder(this, DEFAULT_CHANNEL_ID) val notification = notificationBuilder.setOngoing(true) .setSmallIcon(R.drawable.ic_launcher_foreground) .build() startForeground(101, notification) } 错误信息: 11-28 11:47:53.349 24704-24704/$PACKAGE_NAMEE/AndroidRuntime: FATAL EXCEPTION: main Process: $PACKAGE_NAME, PID: 24704 android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for …

22
以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然
在我的应用程序中,我EditText的默认输入类型android:inputType="textPassword"由deault 设置为。它CheckBox在其右侧具有,选中该复选框时,会将那个EditText的输入类型更改为NORMAL PLAIN TEXT。的代码是 password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 我的问题是,当未选中CheckBox时,应再次将输入类型设置为PASSWORD。我已经使用- password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 但是,该edittext中的文本仍然可见。令我惊讶的是,当我更改方向时,它会自动将输入类型设置为PASSWORD,并且其中的文本会显示为项目符号(如密码所示)。 有什么办法可以做到这一点?

18
Android-SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
我有以下布局(实际上是空的): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/set_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:contentDescription="content desc" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> </LinearLayout> Activity类包含以下内容: public class TestActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); } } 在移动设备上运行此命令时,出现以下错误: SpannableStringBuilder SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 无论是否使用TextView我都尝试过,并且错误仍然存​​在,对于这样的基本布局,我必须做一些根本错误的事情。 …
190 java  android 

9
更改排球超时时间
我使用新的Android Volley框架向服务器发出请求。但是它确实会响应,但是在获得响应之前会超时。 我尝试添加以下代码: HttpConnectionParams.setConnectionTimeout(httpParams, 5000); HttpConnectionParams.setSoTimeout(httpParams, timeoutMs); HttpClientStack将Volley框架的in 设置为另一个整数(50000),但仍在50秒之前超时。 有没有办法将超时更改为长值?

9
如何获得当前的屏幕方向?
我只想在方向为横向时设置一些标志,以便在onCreate()中重新创建活动时可以在纵向加载与横向加载之间进行切换。我已经有一个用于处理布局的layout-land xml。 public void onConfigurationChanged(Configuration _newConfig) { if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { this.loadURLData = false; } if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { this.loadURLData = true; } super.onConfigurationChanged(_newConfig); } 重写onConfigurationChanged将阻止我的布局土地xml以横向加载。 我只想在onCreate()中获取设备的当前方向。我怎么能得到这个?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.