小编Din*_*ara的帖子

如何以编程方式关闭SearchView?

我目前SearchView在我的应用程序的操作栏中有一个.当我单击搜索图标时,SearchView扩展和键盘会按预期弹出.单击SearchView框中的"X" SearchView将按预期关闭.但是,当SearchView激活并按下"后退"按钮时,我的应用程序将退出.这是正确的行为,但我现在要做的是捕获后退按钮,只是让它SearchViewSearchView可见时关闭(不是我的应用程序).有没有办法SearchView OnCloseListener()按后退按钮以编程方式调用?例如,像这样:

// On a back button press, if we are currently searching,
// close the SearchView. Otherwise, invoke normal back button
// behavior.
public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK) {
        if (isSearchViewVisible) {
            SearchView searchView = (SearchView) menu.findItem(R.id.searchBox)
               .getActionView();

            // This method does not exist
            searchView.invokeClose();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

android searchview

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

如何在ListView自定义适配器中使用RadioGroup?

我想在列表中显示一个选择选项.我正在使用RadioButton我的listView排.我知道这RadioGroup用于单一选择.

但问题是我已经添加了RadioButton我的ListRowView.现在我想将所有列表项添加到一个中RadioButton.我正在使用Custom Adapter和进入getView().我得到RadioButtongetView(),但要添加它时RadioGroup它说

"视图已经有父级,在父级之前调用removeView()"

我知道它是真的,但如果我从视图中删除它.然后它是不可见的.

我还尝试以RadioButton编程方式创建和添加.然后添加它RadioGrop.然后查看列表行.但这次作为父母RadioGroup,所以它再说

"视图已经有父级,在父级之前调用removeView()"

我想要做的是一次只选择列表中的一个项目.我的代码如下.

getView

 public class MyAdapter extends ArrayAdapter < MyMenuItem > {

    private LayoutInflater mInflater ;

    int                    mResource ;
    List < MyMenuItem >    mData ;
    Context context;

    public MyAdapter ( Context context , int resource , int textViewResourceId , List < MyMenuItem > data ) { …
Run Code Online (Sandbox Code Playgroud)

android radio-button android-layout

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

如何防止多个Toast Overlaps

我一直在使用一个常见的"myToast",我myToast.cancel()在发布新的吐司之前使用它.对于Android v2.3及更早版本,这很有效.当需要发送新的吐司时,旧的吐司,如果仍然在 -屏幕,被取消(并立即消失)以替换为新的吐司.如果用户多次按下需要警报的键(以及其他条件),这可以避免堆叠一堆祝酒词.我的实际情况是出现一个吐司当按下错误的键时,如果未按下清除键,则会出现另一个键.

对于Android 4.0和4.1,myToast.cancel()在下一个toast之前发出一个杀死当前和下一个toast.当前的cancel()API确实表明它取消了当前和下一个toast(这似乎相当愚蠢).为什么要取消你想要的吐司?

任何关于取消的想法在Android版本中都能保持一致(以及它在v2.3及更早版本中的工作方式)?

我将尝试一些不道德的双吐司系统跟踪正在使用的吐司,但似乎这种痛苦解决了4.x中的这种不良行为,以便在旧的Android版本中获得完美和逻辑的功能.


好吧,我解决了它,但它并不像我希望的那样干净.我实施了双重吐司方法,它在两个吐司之间交替.首先,我们在以下之前定义活动的祝酒词OnCreate:

Toast toast0;
Toast toast1;
private static boolean lastToast0 = true;
Run Code Online (Sandbox Code Playgroud)

在OnCreate中:

toast0 = new Toast(getApplicationContext());
toast0.cancel();
toast1 = new Toast(getApplicationContext());
toast1.cancel();
Run Code Online (Sandbox Code Playgroud)

最后,当我需要同时显示吐司并取消之前的吐司时,我会使用类似的东西:

if (lastToast0) {
    toast0.cancel();
    toast1.setDuration(Toast.LENGTH_LONG);
    toast1.setText("new message");
    toast1.show();
    lastToast0 = false;
} else {
    toast1.cancel();
    toast0.setDuration(Toast.LENGTH_LONG);
    toast0.setText("new message");
    toast0.show();
    lastToast0 = true;
}
Run Code Online (Sandbox Code Playgroud)

如果您只需要取消现有的吐司(在它超时之前),请使用:

toast0.cancel();
toast1.cancel();
Run Code Online (Sandbox Code Playgroud)

在Nexus 7(4.1),Emulator 4.0以及Android 2.2,2.3的多个设备上进行了测试.

android toast

26
推荐指数
1
解决办法
2万
查看次数

在 Flutter 中替换片段之类的小部件

我是 Flutter 的新手。

我有一个带有 2 个子小部件(Android 中的 2 个片段)的应用程序,当我单击 WidgetA 中的下一步按钮时,我想将该小部件替换(或推送)到 WidgetChildA 中,就像推送(或替换)Android 中的片段一样。但不是这样,我得到了一个全屏小部件,就像 Flutter 中的普通屏幕一样。

这是我的代码:

import 'package:flutter/material.dart';

class DemoFragment extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new DemoFragmentState();
  }
}

class DemoFragmentState extends State<DemoFragment> {
  @override
  Widget build(BuildContext context) {
    print(context.toString() + context.hashCode.toString());
    return new Scaffold(
      appBar: new AppBar(title: new Text("Demo fragment")),
      body: new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        mainAxisSize: MainAxisSize.max,
        children: <Widget>[
          new FragmentA(),
          new FragmentB()
        ],
      ),
    );
  }
}

class FragmentA extends StatelessWidget { …
Run Code Online (Sandbox Code Playgroud)

android dart flutter

11
推荐指数
3
解决办法
2万
查看次数

[Android搜索小部件]默认情况下如何隐藏搜索视图中的关闭按钮?

我已经实现了机器人SearchViewActionBar.当SearchView获得焦点,关闭按钮[X]在合适的显示出来.我看了一下其他Android原生应用,比如联系人和Gmail.SearchView增益聚焦时不显示关闭按钮.

如何设置我的SearchView表现?

android android-widget searchview

8
推荐指数
5
解决办法
1万
查看次数

将onClick添加到以编程方式创建的按钮

A TextViewButton以编程方式创建并添加到预先存在的垂直布局中,使其看起来像一个垂直的视图列表.这些视图仅基于用户将数据输入到edittext该数据并将该数据保存到数据中而创建ArrayList.

如何onClick向我的"垃圾"按钮添加一个函数,该按钮以编程方式创建,允许他们删除与之关联的视图.

public static ArrayList<String> deckNameArray = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainLayout);

    for(int i = 0; i < deckNameArray.size(); i++)
    {
        LinearLayout layout = new LinearLayout(this);
        if ((i % 2) == 0) {
            layout.setBackgroundColor(Color.CYAN);
        } else {
            layout.setBackgroundColor(Color.WHITE);
        }
        layout.setOrientation(LinearLayout.HORIZONTAL);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        layout.setLayoutParams(layoutParams);
        layout.setPadding(10, 5, 10, 5);
        layout.setWeightSum(5);
        mainLayout.addView(layout);

        LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT, 4f);
        TextView …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
8018
查看次数

Android / FireStore查询并返回自定义对象

我还有一个关于Firestore和Android / Java实现的问题,但这一次是代码。这是我的数据库的样子:

在此处输入图片说明



这将是一个QuizApp,数据库包含生成的ID和。customObject(type: questionDataObject name: content)此外,它还具有带有以下限制/想法的数组列表:

[0]:问题
1:正确答案
[2] ... [4] 错误答案

我为问题数据对象添加了一个字符串“数字”,只是为了让我可以轻松搜索/查询一些内容。那就是我的问题,我无法使查询正常工作。

    public class questionAdder extends AppCompatActivity {

    EditText pQuestion, pAnwerA, pAnswerB, pAnswerC, pAnswerD, number;
    Button pAdd, query;
    private DatabaseReference databaseReference;
    private FirebaseFirestore firebaseFirestore;

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

        firebaseFirestore = FirebaseFirestore.getInstance();

        pQuestion = (EditText) findViewById(R.id.question);
        pAnwerA = (EditText) findViewById(R.id.answerA);
        pAnswerB = (EditText) findViewById(R.id.answerB);
        pAnswerC = (EditText) findViewById(R.id.answerC);
        pAnswerD = (EditText) findViewById(R.id.answerD);
        number = (EditText) findViewById(R.id.number);

        pAdd = (Button) findViewById(R.id.addQuestion); …
Run Code Online (Sandbox Code Playgroud)

android firebase google-cloud-firestore

3
推荐指数
1
解决办法
5094
查看次数

三星S8 Android 8.0的蓝牙HCI日志在哪里

当Samsung S8是Android 7.1时,bt hci日志位于Android / data。但是,将其更新到Android 8.0时,无法在任何文件夹中找到hci日志。我也尝试通过以下命令生成hci日志,但两者均不起作用。这些命令可以在我的Pixel 2上正常工作。

亚行壳dumpsys bluetooth_manager

亚行错误报告> BUG_REPORT.txt

android bluetooth hci

1
推荐指数
1
解决办法
3095
查看次数

Android按钮程序化点击

我有一个按钮.我想模拟点击.performClick()完成大部分工作,但它没有按钮的动画.我想setPressedsetEnabled好,但没有骰子.

android click button

0
推荐指数
1
解决办法
3655
查看次数