javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

如何隐藏Android Spinn中的一个项目

我正在寻找一种方法来隐藏Android微调框小部件中的一个项目。 这将允许您模拟没有选择项目的微调器,并确保始终为所选的每个项目调用onItemSelected()回调(如果隐藏项目是&#34;当前&#34;一个)。 通常,微调器中总有一个项不会产生回调,即当前的回调。

stackoverflow上有一些关于如何禁用(灰显)项目的代码,而不是如何完全隐藏项目,就好像它们不存在一样。

经过多次实验,我已经提出了一个适用于各种新旧Android平台的黑客解决方案。 它有一些小的化妆品缺点,很难注意到。 我仍然希望听到一个更正式的解决方案,除了#34;不要用旋转器做到这一点&#34;。

这总是隐藏微调器中的第一个项目,但可以相当容易地扩展以隐藏任意项目或多个项目。 在微调器项列表的开头添加一个包含空字符串的虚拟项。 您可能希望在微调器对话框打开之前将当前微调器选择设置为项目0,这将模拟未选择的微调器。

使用ArrayAdapter方法的Spinner设置示例覆盖:

List<String> list = new ArrayList<String>();
list.add("");   //  Initial dummy entry
list.add("string1");
list.add("string2");
list.add("string3");

// Populate the spinner using a customized ArrayAdapter that hides the first (dummy) entry
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list) {
    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent)
    {
        View v = null;

        // If this is the initial dummy entry, make it hidden
        if (position == 0) {
            TextView tv = new TextView(getContext());
            tv.setHeight(0);
            tv.setVisibility(View.GONE);
            v = tv;
        }
        else {
            // Pass convertView as null to prevent reuse of special case views
            v = super.getDropDownView(position, null, parent);
        }

        // Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling 
        parent.setVerticalScrollBarEnabled(false);
        return v;
    }
};

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(dataAdapter);
trans by 2019-08-19T07:54:01Z

android - RecyclerView GridLayoutManager:如何自动检测跨度计数?

使用新的GridLayoutManager:[https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.html]

它需要一个明确的跨度计数,所以问题现在变成:你怎么知道有多少&#34;跨越&#34; 适合每排? 毕竟这是一个网格。 根据测量的宽度,应该有与RecyclerView可以匹配的一样多的跨距。

使用旧版RecyclerView,您只需设置&#34; columnWidth&#34; 属性,它会自动检测适合的列数。 这基本上是我想要为RecyclerView复制的:

  • RecyclerView上添加OnLayoutChangeListener
  • 在此回调中,对单个网格项目进行通知。 并测量它
  • spanCount = recyclerViewWidth / singleItemWidth;

这似乎是很常见的行为,所以我有没有看到更简单的方法?

trans by 2019-08-19T06:23:33Z

找不到android - adb命令

在我使用ezkeyboard应用程序之前,我需要运行android命令,该应用程序允许用户使用浏览器在手机上打字。

当我运行android命令时,我收到adb错误消息。

我可以从终端运行android命令。 为什么adb不能正常工作?

trans by 2019-08-19T06:06:46Z

Android xml错误:“找不到与给定名称匹配的资源”和RelativeLayout(@ id / LinearLayout_acc,@ id / ProgressBar_statusScreen)

好的,所以这开始真的让我恼火。 此错误以非常特殊但不太合理的方式弹出。

我首先要说的是,我已经查看了有关此错误的其他问题,谷歌也是如此。 据我所知,大多数类似的问题都是因为人们引用了@id/资源或其他不在同一布局文件中的资源,他们错误地放置了&#39; +&#39; 在&#39; @id +&#39; 或类似的东西。

我遇到的问题发生在一个布局.xml文件与@id/.这包含一个@+id/,两个@+id/s包含一些文本,最后一个@id/.我想要的是进度条使用android:layout_alignParentBottom="true"与相对布局对齐,然后对齐 进度条上方的两个线性布局(底部线性布局在进度条上方对齐,另一个在底部线性布局上方对齐)。

它应该足够简单,看起来好像有效,即图形视图显示了所需的结果。 但是,问题就出现了,Eclipse给出了两个线性布局的错误,

&#34;错误:找不到与给定名称匹配的资源(在&#39; layout_above&#39;有值&#39; @ id / LinearLayout_acc&#39;)。&#34;

和参考进度条的其他线性布局的相同错误。 我有三次以上检查没有拼写错误(包名也存在于packagename.R.java中),我已经尝试过十几次清理项目了。

在保存(和自动构建)时,我没有收到错误,直到我决定运行项目。 另一个奇怪的事情是,当我从进度条而不是顶部线性布局引用底部线性布局时,我没有得到任何错误!

我的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background_activity" >
        <TableLayout
             ... />

        <LinearLayout
            android:id="@+id/LinearLayout_dist"
            android:layout_above="@id/LinearLayout_acc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="10dp" >

            <TextView
                ... />

            <TextView
                ... />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/LinearLayout_acc"
            android:layout_above="@id/ProgressBar_statusScreen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true" >

            <TextView
                ... />

            <TextView
                ... />
        </LinearLayout>

        <ProgressBar
            android:id="@+id/ProgressBar_statusScreen"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_margin="16dp" />

</RelativeLayout>

请帮忙,我不知道是什么导致了这个错误!

用答案编辑

Shrikant提供了在布局文件中更改外观顺序的解决方案,以便元素仅引用在读取引用时已定义的其他元素。
此外,正如其他人发布的那样,即使在引用中,将@id/更改为@+id/也会删除错误消息。 正如Marco W.在这个帖子中所写的,事情是你必须在第一次提到每个id时使用@+id/然后使用@id/,即使第一次可能不是定义。

我完成了大部分设计并在Eclipse的图形编辑器中设置了引用的id,因此自动插入了导致错误消息的代码。 也许这是Eclipse中的一个错误。

trans by 2019-08-19T01:46:06Z

android - 没有重力滚动视图。 如何将scrollview内的内容设为cen

我希望scrollView中的内容为中心。

<ScrollView
    android:id="@+id/scroller"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingTop="12dp"
    android:paddingBottom="20dp"
    android:scrollbarStyle="outsideOverlay"
    android:layout_gravity="center" >

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="check" 
        android:gravity="center_vertical|center_horizontal"/>

</ScrollView>

注意:scrollvew没有android:gravity属性。

任何溶胶: -

trans by 2019-08-19T00:19:33Z

android - gen已经存在但不是源折叠

我正在开发我的Android项目,在我删除了一个未使用的库之后,我得到了错误:

myproject/gen already exists but is not a source folder. Convert to a source folder or rename it

在我的活动代码中,无法解析来自R.java的所有资源。

我试过,右键点击我的项目=&gt; Java Build Path =&gt; 在&#34;来源&#34; tab,我添加了gen / as source。 但这对问题没有帮助......

为什么,如何摆脱这个问题?

--------更新

我发现,日食也抱怨&#34; Project没有project.properties文件! 编辑项目属性以设置一个。&#34; ,但我的项目下有project.properties文件。 为什么抱怨? 我已经清理了项目并修复了项目属性&#34; 但它没有帮助。

trans by 2019-08-18T22:05:38Z

text - Android EditText视图浮动提示在Material Design中

API 21是否提供了使用以下功能的方法:

[http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels]

我试图浮动EditText提示。

谢谢!

trans by 2019-08-18T21:35:04Z

是否可以更改Android单选按钮组中的单选按钮图标

我想让我的Android应用程序的用户能够设置一些参数。 单选按钮非常适合这种情况。 但是,我不喜欢单选按钮被渲染。

是否可以更改单选按钮图标? 例如,是否可以为每一行创建自定义布局,并在该布局中引用我自己的图标并更改字体等。

trans by 2019-08-18T20:14:37Z

windows - 移动默认AVD配置文件夹(.android)

安装Android SDK后,在E:\驱动器上创建了.android文件夹。 据我所知,这是配置文件的Android虚拟设备的默认文件夹。

如何将.android文件夹移动到其他位置?

(例如从E:\。android到E:\ Android \ .android)

trans by 2019-08-18T19:58:43Z

junit - 如何测试Android库项目

我正在编写一个基于Android Bitmap类(称为AndroindLib)的Android库项目,该类仅包含实用程序类(无活动)。 我尝试使用Android JUnit测试它,但它一直在抱怨无法找到AnroidLib.apk

单元测试Android库项目的正确方法是什么?

trans by 2019-08-18T19:29:21Z

Html List标签在android textview中不起作用。 我能做什么?

Html List标签在android TextView中不起作用。 这是我的字符串内容:

String str="A dressy take on classic gingham in a soft, textured weave of stripes that resembles twill.  Take a closer look at this one.<ul><li>Trim, tailored fit for a bespoke feel</li><li>Medium spread collar, one-button mitered barrel cuffs</li><li>Applied placket with genuine mother-of-pearl buttons</li><li>;Split back yoke, rear side pleats</li><li>Made in the U.S.A. of 100% imported cotton.</li></ul>";

我在这样的文本视图中加载它:

textview.setText(Html.fromHtml(str));

输出看起来像一个段落。 我能做什么? 它有什么解决方案吗?

编辑:

webview.loadData(str,"text/html","utf-8");
trans by 2019-08-18T18:34:51Z

android - 以编程方式将新项目添加到recyclerview?

我仍然试图了解Recyclerview。我有一个arraylist,我用它来初始化一个回收站视图。

如何在设置适配器和布局管理器的回收器视图中添加新项?

private void initData() {
        mItems = new ArrayList<String>();
        for (int i = 0; i < ITEMS_COUNT; i++) {
            mItems.add("Item " + (i + 1));
        }
    }

    private void initRecyclerView() {
        mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView);
        mRecentRecyclerView.setHasFixedSize(true);
        mRecentLayoutManager = new LinearLayoutManager(this);
        mRecentRecyclerView.setLayoutManager(mRecentLayoutManager);



        mAdapter = new RecyclerView.Adapter<CustomViewHolder>() {
            @Override
            public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.notice_snippet
                        , viewGroup, false);
                return new CustomViewHolder(view);
            }

            @Override
            public void onBindViewHolder(CustomViewHolder viewHolder, int i) {
                viewHolder.noticeSubject.setText(mItems.get(i));
            }

            @Override
            public int getItemCount() {
                return mItems.size();
            }

        };
        mRecentRecyclerView.setAdapter(mAdapter);

    private class CustomViewHolder extends RecyclerView.ViewHolder {

        private TextView noticeSubject;

        public CustomViewHolder(View itemView) {
            super(itemView);

            noticeSubject = (TextView) itemView.findViewById(R.id.notice_subject);
        }
    }

所以基本上在我initdata()initRecyclerView()之后,如何在RecyclerView中添加新项目?

trans by 2019-08-18T18:22:45Z

Android:如何在eclipse cons上打印变量

我想在控制台上打印变量的值以用于调试目的,但system.out.println不起作用。

trans by 2019-08-18T15:05:14Z

android - 片段onCreateView和onActivityCreated称为twi

我正在使用Android 4.0 ICS和片段开发应用。

考虑ICS 4.0.3(API级别15)API演示示例应用程序中的此修改示例:

public class FragmentTabs extends Activity {

private static final String TAG = FragmentTabs.class.getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final ActionBar bar = getActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

    bar.addTab(bar.newTab()
            .setText("Simple")
            .setTabListener(new TabListener<SimpleFragment>(
                    this, "mysimple", SimpleFragment.class)));

    if (savedInstanceState != null) {
        bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
        Log.d(TAG, "FragmentTabs.onCreate tab: " + savedInstanceState.getInt("tab"));
        Log.d(TAG, "FragmentTabs.onCreate number: " + savedInstanceState.getInt("number"));
    }

}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
}

public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
    private final Activity mActivity;
    private final String mTag;
    private final Class<T> mClass;
    private final Bundle mArgs;
    private Fragment mFragment;

    public TabListener(Activity activity, String tag, Class<T> clz) {
        this(activity, tag, clz, null);
    }

    public TabListener(Activity activity, String tag, Class<T> clz, Bundle args) {
        mActivity = activity;
        mTag = tag;
        mClass = clz;
        mArgs = args;

        // Check to see if we already have a fragment for this tab, probably
        // from a previously saved state.  If so, deactivate it, because our
        // initial state is that a tab isn't shown.
        mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);
        if (mFragment != null && !mFragment.isDetached()) {
            Log.d(TAG, "constructor: detaching fragment " + mTag);
            FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();
            ft.detach(mFragment);
            ft.commit();
        }
    }

    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        if (mFragment == null) {
            mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
            Log.d(TAG, "onTabSelected adding fragment " + mTag);
            ft.add(android.R.id.content, mFragment, mTag);
        } else {
            Log.d(TAG, "onTabSelected attaching fragment " + mTag);
            ft.attach(mFragment);
        }
    }

    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        if (mFragment != null) {
            Log.d(TAG, "onTabUnselected detaching fragment " + mTag);
            ft.detach(mFragment);
        }
    }

    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        Toast.makeText(mActivity, "Reselected!", Toast.LENGTH_SHORT).show();
    }
}

public static class SimpleFragment extends Fragment {
    TextView textView;
    int mNum;

    /**
     * When creating, retrieve this instance's number from its arguments.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(FragmentTabs.TAG, "onCreate " + (savedInstanceState != null ? ("state " + savedInstanceState.getInt("number")) : "no state"));
        if(savedInstanceState != null) {
            mNum = savedInstanceState.getInt("number");
        } else {
            mNum = 25;
        }
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        Log.d(TAG, "onActivityCreated");
        if(savedInstanceState != null) {
            Log.d(TAG, "saved variable number: " + savedInstanceState.getInt("number"));
        }
        super.onActivityCreated(savedInstanceState);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        Log.d(TAG, "onSaveInstanceState saving: " + mNum);
        outState.putInt("number", mNum);
        super.onSaveInstanceState(outState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.d(FragmentTabs.TAG, "onCreateView " + (savedInstanceState != null ? ("state: " + savedInstanceState.getInt("number")) : "no state"));
        textView = new TextView(getActivity());
        textView.setText("Hello world: " + mNum);
        textView.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
        return textView;
    }
}

}

这是从运行此示例然后旋转手机检索到的输出:

06-11 11:31:42.559: D/FragmentTabs(10726): onTabSelected adding fragment mysimple
06-11 11:31:42.559: D/FragmentTabs(10726): onCreate no state
06-11 11:31:42.559: D/FragmentTabs(10726): onCreateView no state
06-11 11:31:42.567: D/FragmentTabs(10726): onActivityCreated
06-11 11:31:45.286: D/FragmentTabs(10726): onSaveInstanceState saving: 25
06-11 11:31:45.325: D/FragmentTabs(10726): onCreate state 25
06-11 11:31:45.340: D/FragmentTabs(10726): constructor: detaching fragment mysimple
06-11 11:31:45.340: D/FragmentTabs(10726): onTabSelected attaching fragment mysimple
06-11 11:31:45.348: D/FragmentTabs(10726): FragmentTabs.onCreate tab: 0
06-11 11:31:45.348: D/FragmentTabs(10726): FragmentTabs.onCreate number: 0
06-11 11:31:45.348: D/FragmentTabs(10726): onCreateView state: 25
06-11 11:31:45.348: D/FragmentTabs(10726): onActivityCreated
06-11 11:31:45.348: D/FragmentTabs(10726): saved variable number: 25
06-11 11:31:45.348: D/FragmentTabs(10726): onCreateView no state
06-11 11:31:45.348: D/FragmentTabs(10726): onActivityCreated

我的问题是,为什么onCreateView和onActivityCreated调用了两次? 第一次使用Bundle保存状态,第二次使用null savedInstanceState?

这导致在旋转时保持片段状态的问题。

trans by 2019-08-18T12:41:56Z

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

我有((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();getActivity().getActionBar()并使用support_v7 setTitle()作为ActionBar。 在我的一个片段工具栏中有自定义视图。 在其他片段中,Toolbar应显示标题。

如何从片段中获取((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();实例进行自定义? 我可以使用getActivity().getActionBar()获取ActionBar,但是如果我为此实例ActionBar调用setTitle()则不执行任何操作。

UPD:

就我而言

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

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

trans by 2019-08-18T11:54:57Z

Android Studio说“无法解析符号”,但项目编译

我在AndroidStudio中导入twitter4j,在build.gradle中使用以下内容:

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
  compile files('libs/twitter4j-core-3.0.4.jar')
}

项目编译得很好,我可以毫无问题地创建twitter对象。 但是,在Android工作室中,任何引用该库的内容都显示&#34;无法解析符号&#34; 并以红色显示。 要让Android Studio识别库,我需要做些什么?

我已经尝试重建项目,./ gradlew clean,关闭并重新打开我的项目。

trans by 2019-08-18T10:31:11Z

android - 媒体播放器在状态0中调用,错误(-38,0)

我目前正在尝试设计一个简单的应用程序,流媒体互联网广播电台。 我有电台的URL,我正在设置媒体播放器

    MediaPlayer mediaPlayer = new MediaPlayer();
    try {
        mediaPlayer.setDataSource(URL);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        mediaPlayer.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.start();

模拟时程序不会崩溃,但没有播放,我收到以下错误:

start called in state 0

就在它下面

Error (-38,0)

有谁知道这意味着什么?

我已经阅读了一些有关这些状态错误的内容,但无法找到适用于我的项目的任何内容。

trans by 2019-08-18T06:05:56Z

如何检测Android中布局的方向变化?

我刚刚实现了方向更改功能 - 例如 当布局从纵向变为横向时(反之亦然)。 如何检测方向更改事件何时完成。

OrientationEventListener没有用。 如何获取有关布局方向更改事件的通知?

trans by 2019-08-18T04:24:24Z

Android 5.1.1及更高版本 - getRunningAppProcesses()仅返回我的应用程序包

谷歌似乎最终关闭了获取当前前台应用程序包的所有大门。

在Lollipop更新之后,由于这个答案而死了getRunningAppProcesses(),我使用此代码来获取Lollipop以来的前台应用程序包:

final int PROCESS_STATE_TOP = 2;
RunningAppProcessInfo currentInfo = null;
Field field = null;
try {
    field = RunningAppProcessInfo.class.getDeclaredField("processState");
} catch (Exception ignored) { 
}
ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appList = am.getRunningAppProcesses();
for (RunningAppProcessInfo app : appList) {
    if (app.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
        app.importanceReasonCode == 0 ) {
        Integer state = null;
        try {
            state = field.getInt( app );
        } catch (Exception ignored) {
        }
        if (state != null && state == PROCESS_STATE_TOP) {
            currentInfo = app;
            break;
        }
    }
}
return currentInfo;

Android 5.1.1及以上版本(6.0 Marshmallow)似乎也杀死了getRunningAppProcesses()。 它现在返回您自己的应用程序包的列表。


UsageStatsManager

我们可以使用此处所述的新AccessibilityService API,但它并不适用于所有应用程序。 某些系统应用程序将返回相同的包

com.google.android.googlequicksearchbox

AccessibilityService(2017年12月:将被禁止供Google使用)

一些应用程序使用AccessibilityService(如此处所示),但它有一些缺点。


有没有其他方法来获取当前正在运行的应用程序包?

trans by 2019-08-14T17:45:26Z

android - 配置IntelliJ IDEA,以便在git中检测到源但检测到未注册的Vcs根

检测到未注册的Vcs root
目录C:\ Users \ Andrew在Git下,但未在“设置”中注册。
配置忽略VCS根错误

为什么会这样?

trans by 2019-08-14T17:07:00Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共108页