小编mmB*_*mBs的帖子

导航抽屉:如何在启动时设置所选项目?

我的代码完美无缺:每次点击导航抽屉中的项目时,都会选择该项目.

当然我想用默认片段(home)启动应用程序,但导航抽屉没有选择项目.如何以编程方式选择该项目?

public class BaseApp extends AppCompatActivity {

    //Defining Variables
    protected String LOGTAG = "LOGDEBUG";
    protected Toolbar toolbar;
    protected NavigationView navigationView;
    protected DrawerLayout drawerLayout;

    private DateManager db = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_layout);

        navigationView = (NavigationView) findViewById(R.id.navigation_view);


        // set the home/dashboard at startup

        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.frame, new DashboardFragment());
        fragmentTransaction.commit();

        setNavDrawer();
    }

    private void setNavDrawer(){

        // Initializing Toolbar and setting it as the actionbar
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        //Initializing NavigationView

        //Setting Navigation View Item …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

218
推荐指数
10
解决办法
19万
查看次数

GridLayout(不是GridView)如何均匀地拉伸所有孩子

我希望有一个带有按钮的2x2网格.这只是ICS所以我试图使用给定的新GridLayout.

这是我的布局的XML:

 <?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/favorites_grid"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00ff00"
    android:rowCount="2"
    android:columnCount="2">
  <Button
      android:text="Cell 0"
      android:layout_row="0"
      android:layout_column="0"
      android:textSize="14dip" />
  <Button
      android:text="Cell 1"
      android:layout_row="0"
      android:layout_column="1"
      android:textSize="14dip" />

  <Button
      android:text="Cell 2"
      android:layout_row="1"
      android:layout_column="0"
      android:textSize="14dip" />
  <Button
      android:text="Cell 3"
      android:layout_row="1"
      android:layout_column="1"
      android:textSize="14dip" />
</GridLayout>
Run Code Online (Sandbox Code Playgroud)

问题是我的视图不能均匀地拉伸到每一行.这会在GridLayout的右侧产生大量额外空间.

我试过设置,layout_gravity="fill_horizontal"但只适用于行的最后一个视图.这意味着Cell 1一直延伸为Cell 0提供足够的空间.

关于如何解决这个问题的想法?

android android-layout android-gridview android-gridlayout

211
推荐指数
10
解决办法
30万
查看次数

检查EditText是否为空.

EditTexts在Android中有5个用户输入.我想知道我是否可以有一个方法来检查所有5,EditTexts如果它们是null.有没有办法做到这一点?

android android-edittext

208
推荐指数
10
解决办法
42万
查看次数

滚动RecyclerView以在顶部显示所选项目

我正在寻找一种滚动方式以RecyclerView在顶部显示所选项目的方法.

ListView我能够通过这样做,scrollTo(x,y)并获得了需要为中心元素的顶部.

就像是:

@Override
public void onItemClick(View v, int pos){
    mylistView.scrollTo(0, v.getTop());
}
Run Code Online (Sandbox Code Playgroud)

问题是RecyclerView当使用它的scrollTo方法时返回错误

RecyclerView不支持滚动到绝对位置

如何滚动a RecyclerView以将所选项目放在视图顶部?

android scroll android-recyclerview

192
推荐指数
12
解决办法
18万
查看次数

Android Studio,logcat在应用关闭后进行清理

自Android Studio更新1.2 Beta以来,我的logcat出现问题.当我运行我的应用程序时,它会像通常那样记录所有内容,然后我会发现我的应用程序崩溃了应用程序说:不幸的是,游戏已停止.

几秒钟后,android关闭了该消息.当发生这种情况时,我的logcat也会被完全清除,这意味着我几乎无法随时读取错误.我确实找到了一些关于缓冲区的信息,但似乎除了我怀疑是问题之外,Android Studio没有增加它的选项.

可能有用的东西是,在它清除并填充进程更改为Android.process.core并且我在logcat中获得的消息是:

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm?    
Debugger has detached; object registry had 1 entries
Run Code Online (Sandbox Code Playgroud)

编辑:我确实读过有关断点的内容,因此禁用了应用程序 - 构建,执行,部署 - 调试器中断点的应用程序,但它没有任何效果.

android logcat android-studio

115
推荐指数
9
解决办法
3万
查看次数

如何在Android中安全存储访问令牌和秘密?

我将使用oAuth从谷歌获取邮件和联系人.我不想每次都要求用户登录以获取访问令牌和密码.根据我的理解,我需要将它们与我的应用程序一起存储在数据库中SharedPreferences.但我有点担心安全问题.我读过你可以加密和解密令牌,但是攻击者很容易反编译你的apk和类并获得加密密钥.
在Android中安全存储这些令牌的最佳方法是什么?

security android oauth token preferences

114
推荐指数
4
解决办法
6万
查看次数

如何从片段中获取工具栏?

ActionBarActivityNavigationDrawer和使用support_v7 Toolbar的动作条.在我的一个片段工具栏中有自定义视图.在其他片段中Toolbar应显示标题.

如何Toolbar从片段中获取自定义实例?我可以使用ActionBar getActivity().getActionBar(),但是如果我调用setTitle()这个实例ActionBar它什么都不做.

UPD:

就我而言

((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();

(正如MrEngineer13所说)在第一次片段创建时不起作用,因为我从onHiddenChanged()调用它.现在我向onCreateView()添加更多一个,它工作正常.

android android-fragments android-actionbar android-support-library android-toolbar

102
推荐指数
4
解决办法
14万
查看次数

Android文字覆盖图像

我有一个带有图像的imageView,在我要放置文本的图像上.我怎样才能做到这一点?

android android-image android-imageview

90
推荐指数
5
解决办法
12万
查看次数

(已弃用)片段onOptionsItemSelected未被调用

编辑: 这个问题是针对已弃用的sherlock操作栏.现在应该使用Android支持库

我添加了一个名为share for action的操作栏菜单选项fragment,但是没有捕获选择事件

我这样添加它

@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
    MenuItem item = menu.add(0, 7,0, R.string.share);
    item.setIcon(R.drawable.social_share).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
Run Code Online (Sandbox Code Playgroud)

试图捕捉它在这两个fragmentfragment activity类似

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case 7:
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");
            share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!");
            startActivity(Intent.createChooser(share, "Share Text"));
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

我有setHasOptionsMenu(true);onCreate().

android android-fragments android-actionbar

80
推荐指数
4
解决办法
6万
查看次数

如何修复getActionBar方法可能会产生java.lang.NullPointerException

我正在使用工具栏作为活动中的操作栏.我正在尝试将该方法添加getActionBar().setDisplayHomeAsUpEnabled(true);到Activity.java文件中以用于较旧设备的向上导航.

该方法在Android Studio中生成以下错误消息:

方法调用可能会产生java.lang.NullPointerException

工具栏上的向上导航在较新的设备上运行良好...现在我正在试图弄清楚如何确保它适用于旧设备.请指教.

来自build.gradle:

dependencies {
   compile "com.android.support:appcompat-v7:22.1.0"
}
Run Code Online (Sandbox Code Playgroud)

来自AndroidManifest.xml:

android:theme="@style/Theme.AppCompat.NoActionBar.FullScreen" 
Run Code Online (Sandbox Code Playgroud)

来自styles.xml

<style name="Theme.AppCompat.NoActionBar.FullScreen" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
Run Code Online (Sandbox Code Playgroud)

来自Activity.java

public class CardViewActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.cardviewinput);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    if (toolbar != null) {
        // Up navigation to the parent activity for 4.0 and earlier
        getActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationIcon(R.drawable.ic_action_previous_item);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

android toolbar android-actionbar

73
推荐指数
3
解决办法
6万
查看次数