使用反射创建对象而不是调用类构造函数会导致任何显着的性能差异吗?
还有什么东西应该叫吗?
showDialog(TIME_DIALOG_ID);
Run Code Online (Sandbox Code Playgroud)
它在本教程中,但在Eclipse中已弃用.
我总是onclick()在大多数项目中使用事件.但是,我读到了OnClickListener().谁能说出这两者之间有什么区别?哪一个最适合在Android应用程序中使用?
我正在关注Google的Android教程并发现有两种方法可以根据标题获得小部件回调(或者只有onClick - 我不知道).
我是一名高级Java Swing开发人员,所以内部类方法让我有宾至如归的感觉:)但我明白xml方法更新 - 所以谷歌必须添加它是有原因的.
这是什么原因?如果现在避免使用内部类方法(在支持它的版本上),在Android平台上这样做是否"更好"?
我想通过按钮点击退出应用程序.
按钮单击的代码是
quitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View paramView) {
// TODO Auto-generated method stub
MainActivity.this.finish();
}
});
Run Code Online (Sandbox Code Playgroud)
但它需要两次点击才能退出应用.
问题:
我想在按下"添加"按钮时隐藏键盘.
EditText屏幕上有两个.键盘在启动活动时不会出现,这很好,但单击按钮时不会消失.

以下是Stack Overflow的所有可能的问题,我看到他的答案对我没有帮助:
如何在EditText外单击后在android上隐藏软键盘?
和许多其他人.
这是我的代码:
AddActivity
public class AddActivity extends ActionBarActivity {
EditText text1,text2;
DbHelper db;
ListView l;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
db = new DbHelper(this);
l = (ListView) findViewById(R.id.listInAddActivity);
text1 = (EditText) findViewById(R.id.i1);
text2 = (EditText) findViewById(R.id.i2);
// text1.setInputType(InputType.TYPE_NULL);
// text2.setInputType(InputType.TYPE_NULL);
hideKeyboard();
loadDataInAdd();
}
public void addNewTask(View view) {
String s1 = text1.getText().toString();
String s2 = text2.getText().toString();
db.addData(s1,s2);
loadDataInAdd();
hideKeyboard();
}
public void loadDataInAdd()
{
try {
Cursor cursor …Run Code Online (Sandbox Code Playgroud) 当我的StackedWidget视图只是一个textview时,它显示在启动器屏幕上,但是有一个更复杂的布局(A RelativeLayout,imageview,textviews)它不会显示任何内容
设置RemoteViews有什么我需要知道的吗?
widget_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_item"
android:layout_width="270dp"
android:layout_height="150dp">
<ImageView
android:id="@+id/timelineCellImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:onClick="onClick"
android:scaleType="centerCrop"
android:src="@drawable/bottom_grey_gradient"
/>
<LinearLayout
android:id="@+id/timelineCellTextHolder"
android:layout_width="match_parent"
android:layout_height="@dimen/fifty_dp"
android:layout_alignBottom="@id/timelineCellImage"
android:layout_alignLeft="@id/timelineCellImage"
android:background="@drawable/rounded_edges_bottom_dark"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/five_dp"
android:layout_marginRight="@dimen/five_dp"
android:layout_marginTop="@dimen/ten_dp"
android:layout_weight=".5"
android:ellipsize="end"
android:gravity="bottom"
android:lines="1"
android:text="Test"
android:textColor="@color/white"
android:textSize="@dimen/twelve_sp"
android:textStyle="bold" />
<TextView
android:id="@+id/subheading"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/ten_dp"
android:layout_marginLeft="@dimen/five_dp"
android:layout_marginRight="@dimen/five_dp"
android:layout_weight=".5"
android:ellipsize="end"
android:gravity="top"
android:lines="1"
android:text="Subtest"
android:textColor="@color/white"
android:textSize="@dimen/twelve_sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
StackWidgetService.java $getViewAt(int)
public RemoteViews getViewAt(int position) {
// position will always range from 0 to getCount() - 1.
RemoteViews rv = …Run Code Online (Sandbox Code Playgroud) 我有LinearLayout几个Buttons的组成,我将此添加到我的onCreate(..)方法中的活动setContentView(R.layout.myscreen).到目前为止没有惊喜.
如何获得对这些按钮的迭代器的引用?我想向他们添加听众,但我宁愿不直接引用他们的android:id.
Button我无法让它工作我希望此屏幕上的注销preferences有一个ClickListener
它是这样的:
\n\n\n\n这里\xc2\xb4s 代码和buttonView始终为 NULL:
class PreferencesFragment : PreferenceFragmentCompat() {\n\n lateinit var activity: Context\n\n private var prefs: SharedPreferences = BleApplication.getInstance().getDefaultSharedPreferences()\n\n override fun onAttach(context: Context?) {\n super.onAttach(context)\n activity = requireActivity()\n }\n\n\n override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n super.onViewCreated(view, savedInstanceState)\n val buttonView = view.findViewById<View>(R.id.btn_sign_out)\n\n if (buttonView != null) {\n buttonView.setOnClickListener {\n Toast.makeText(getActivity(), "You clicked me.", Toast.LENGTH_SHORT).show()\n }\n }\n // Hide the divider\n/* setDivider(ColorDrawable(Color.TRANSPARENT))\n setDividerHeight(0)*/\n }\n\n override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) …Run Code Online (Sandbox Code Playgroud) 我是Android新手.请给我一个解决方案.我很困惑.我在下面的代码行
activity_main.xml文件:
<ImageView
android:id="@+id/exit_img"
android:src = "@drawable/exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_alignParentEnd="true"
android:onClick="exitsys()"
android:resizeMode="horizontal|vertical" />
Run Code Online (Sandbox Code Playgroud)
并在MainActivity.java文件下面的代码行:
public void exitsys(View v){
System.exit(0);
}
Run Code Online (Sandbox Code Playgroud)
但Android Studio发出的错误是"MainActivity"中缺少"方法exitsys()"或者签名错误"
我不知道我做了什么错.另外作为信息,我也是Java的新手.
我有imageView播放和停止,我试图实现OnClickListener.但是不处理click事件.即使我尝试在调试模式下启动应用程序,我也无法检测到点击事件.这段代码中的错误可能是什么?
public class DetailActivity extends ActionBarActivity implements
OnClickListener {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_activity);
try {
mp = MediaPlayer.create(this, R.raw.baabaa);
mp.prepare();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.stop:
mp.stop();
break;
case R.id.play:
mp.start();
break;
default:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud) android ×10
java ×3
button ×1
dialog ×1
iterator ×1
keyboard ×1
kotlin ×1
onclick ×1
optimization ×1
performance ×1
reflection ×1
remoteview ×1
view ×1