我目前SearchView在我的应用程序的操作栏中有一个.当我单击搜索图标时,SearchView扩展和键盘会按预期弹出.单击SearchView框中的"X" SearchView将按预期关闭.但是,当SearchView激活并按下"后退"按钮时,我的应用程序将退出.这是正确的行为,但我现在要做的是捕获后退按钮,只是让它SearchView在SearchView可见时关闭(不是我的应用程序).有没有办法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) 我想在列表中显示一个选择选项.我正在使用RadioButton我的listView排.我知道这RadioGroup用于单一选择.
但问题是我已经添加了RadioButton我的ListRowView.现在我想将所有列表项添加到一个中RadioButton.我正在使用Custom Adapter和进入getView().我得到RadioButton的getView(),但要添加它时RadioGroup它说
"视图已经有父级,在父级之前调用removeView()"
我知道它是真的,但如果我从视图中删除它.然后它是不可见的.
我还尝试以RadioButton编程方式创建和添加.然后添加它RadioGrop.然后查看列表行.但这次作为父母RadioGroup,所以它再说
"视图已经有父级,在父级之前调用removeView()"
我想要做的是一次只选择列表中的一个项目.我的代码如下.
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) 我一直在使用一个常见的"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的多个设备上进行了测试.
我是 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) 我已经实现了机器人SearchView在ActionBar.当SearchView获得焦点,关闭按钮[X]在合适的显示出来.我看了一下其他Android原生应用,比如联系人和Gmail.SearchView增益聚焦时不显示关闭按钮.
如何设置我的SearchView表现?
A TextView和Button以编程方式创建并添加到预先存在的垂直布局中,使其看起来像一个垂直的视图列表.这些视图仅基于用户将数据输入到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) 我还有一个关于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) 当Samsung S8是Android 7.1时,bt hci日志位于Android / data。但是,将其更新到Android 8.0时,无法在任何文件夹中找到hci日志。我也尝试通过以下命令生成hci日志,但两者均不起作用。这些命令可以在我的Pixel 2上正常工作。
亚行壳dumpsys bluetooth_manager
亚行错误报告> BUG_REPORT.txt
我有一个按钮.我想模拟点击.performClick()完成大部分工作,但它没有按钮的动画.我想setPressed和setEnabled好,但没有骰子.