我目前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
好,但没有骰子.