Questions tagged «android»

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

18
在Android中,如何以编程方式在dp中设置边距?
在这个,这个和这个线程中,我试图找到一个关于如何在单个视图上设置边距的答案。但是,我想知道是否没有更简单的方法。我将解释为什么我不想使用这种方法: 我有一个自定义按钮,它扩展了Button。如果背景设置为默认背景以外的其他值(通过调用setBackgroundResource(int id)或setBackgroundDrawable(Drawable d)),则我希望边距为0。如果我这样调用: public void setBackgroundToDefault() { backgroundIsDefault = true; super.setBackgroundResource(android.R.drawable.btn_default); // Set margins somehow } 我想将页边距重置为-3dp(我已经在这里阅读了如何从像素转换为dp,所以一旦我知道如何在px中设置页边距,就可以自己管理转换了)。但是由于这是在CustomButton类中调用的,因此父类可以从LinearLayout到TableLayout有所不同,我宁愿不要让他获得其父类并检查该父级的实例。我想那也将表现不佳。 另外,在调用(使用LayoutParams)时parentLayout.addView(myCustomButton, newParams),我不知道这是否将其添加到正确的位置(不过,还没有尝试过),说出一行五行的中间按钮。 问题:除了使用LayoutParams之外,还有其他任何更简便的方法以编程方式设置单个Button的边距吗? 编辑:我知道LayoutParams的方式,但我想要一个避免处理每个不同的容器类型的解决方案: ViewGroup.LayoutParams p = this.getLayoutParams(); if (p instanceof LinearLayout.LayoutParams) { LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)p; if (_default) lp.setMargins(mc.oml, mc.omt, mc.omr, mc.omb); else lp.setMargins(mc.ml, mc.mt, mc.mr, mc.mb); this.setLayoutParams(lp); } else if …
401 android  layout  button  margin 

12
如何在Android上的ListViews之间删除线?
我正在使用两个ListView这样的: <ListView android:id="@+id/ListView" android:text="@string/Website" android:layout_height="30px" android:layout_width="150px" android:scrollbars="none" android:transcriptMode="normal"/> <ListView android:id="@+id/ListView1" android:text="@string/Website" android:layout_height="30px" android:layout_width="150px" android:scrollbars="none" android:transcriptMode="normal"/> 两个ListViews 之间有一个空白行。如何删除它?


18
将文件:Uri转换为Android中的文件
什么是从一个转换的最简单的方法file: android.net.Uri,以一个File在Android的? 尝试了以下操作,但不起作用: final File file = new File(Environment.getExternalStorageDirectory(), "read.me"); Uri uri = Uri.fromFile(file); File auxFile = new File(uri.toString()); assertEquals(file.getAbsolutePath(), auxFile.getAbsolutePath());
400 android  file  uri  file-uri 


19
如何在Android中将选项菜单添加到片段
我正在尝试从一组片段中将一个项目添加到选项菜单。 我创建了一个新MenuFragment类,并将其扩展为希望包含菜单项的片段。这是代码: Java: public class MenuFragment extends Fragment { MenuItem fav; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { fav = menu.add("add"); fav.setIcon(R.drawable.btn_star_big_off); } } 科特林: class MenuFragment : Fragment { lateinit var fav: MenuItem override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) setHasOptionsMenu(true) …


26
在构建Android应用的发行版之前,如何删除所有调试日志记录调用?
根据Google的说法,在将我的Android应用发布到Google Play之前,我必须“ 停用对源代码中Log方法的任何调用 ”。摘录于发布清单的第3节: 在构建要发布的应用程序之前,请确保禁用日志记录并禁用调试选项。您可以通过删除对源文件中Log方法的调用来停用日志记录。 我的开源项目很大,每次发布时都很难手动进行。此外,删除日志行可能很棘手,例如: if(condition) Log.d(LOG_TAG, "Something"); data.load(); data.show(); 如果我在Log行中注释,则该条件适用于下一行,并且可能不会调用load()。这样的情况难道不足以使我决定不应该存在吗? 那么,是否有更好的源代码级方法可以做到这一点?还是一些聪明的ProGuard语法可以有效但安全地删除所有Log行?

30
错误类型3错误:活动类{}不存在
我有一个IntelliJ Android项目,该项目已成功导入到Android Studio 0.4.0。如果我不更改清单中的任何内容,它将非常有效。但是,当我想更改启动器活动并运行时,它失败并显示以下错误: Launching application: com.trackingeng/LandingActivity. DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.trackingeng/LandingActivity } Error type 3 Error: Activity class {com.trackingeng/LandingActivity} does not exist. 当我单击与Gradle文件同步项目时,输出: Project Sync The project 'TrackingEng' is not a Gradle-based project 运行设置:


26
Android TextView对齐文本
您如何获得TextView要对齐的a的文本(左右两侧的文本齐平)? 我在这里找到了可能的解决方案,但是它不起作用(即使您将“垂直中心”更改为“ center_vertical”等)。


11
片段MyFragment未附加到活动
我创建了一个小测试应用程序来代表我的问题。我正在使用ActionBarSherlock来实现带有(Sherlock)Fragments的选项卡。 我的代码: TestActivity.java public class TestActivity extends SherlockFragmentActivity { private ActionBar actionBar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupTabs(savedInstanceState); } private void setupTabs(Bundle savedInstanceState) { actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); addTab1(); addTab2(); } private void addTab1() { Tab tab1 = actionBar.newTab(); tab1.setTag("1"); String tabText = "1"; tab1.setText(tabText); tab1.setTabListener(new TabListener<MyFragment>(TestActivity.this, "1", …

30
无法执行dex:多个dex文件定义了Lcom / myapp / R $ array;
由于更新到ADT14,我无法再构建我的项目。在更新之前,它的构建良好。 错误: [2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; [2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; 曾报道过类似的问题,我尝试了其中的建议,包括 正在重新启动Eclipse。 清理项目并重建-禁用“项目->自动生成”选项,然后禁用“清理”和“生成”项目,然后尝试运行。将“自动构建”选项重置为“开” 重新安装Android开发人员工具 重新安装Eclipse(更新到最新版本3.7.1) 创建了一个从文件系统导入的新项目 从subversion创建了一个新项目。


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.