- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我想调用一个新的Intent
,但它显示异常:
java.lang.ClassCastException: android.support.v7.internal.view.menu.ActionMenuItemView cannot be cast to android.widget.Button I was find in the internet but can't find correct in my case.
我的问题始于HistoryFragment.java扩展Fragment
来调用菜单项:
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.saveContact:
Button button2=(Button) getActivity().findViewById(R.id.saveContact);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), AddContactActivity.class);
startActivity(intent);
}
});
类:AddContactActivity.java extends AppCompatActivity
包含插入所有信息并添加到手机中的联系人的所有代码。
public class AddContactActivity extends AppCompatActivity {
private EditText editTextName;
private EditText editTextNumber;
private Button addContactBtn;
private CircleImageView contactImage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
editTextName = (EditText) findViewById(R.id.edtTxtName);
editTextNumber = (EditText) findViewById(R.id.edtTxtNumber);
addContactBtn = (Button) findViewById(R.id.addContactBtn);
contactImage = (CircleImageView) findViewById(R.id.contactImage);
final String nameStr = getIntent().getStringExtra("name");
final String numberStr = getIntent().getStringExtra("number");
final String idStr = getIntent().getStringExtra("id");
if(nameStr != null && numberStr != null && idStr != null) {
editTextName.setText(nameStr);
editTextNumber.setText(numberStr);
addContactBtn.setText("UPDATE");
Bitmap bitmap = getIntent().getParcelableExtra("image");
if(bitmap != null) {
contactImage.setImageBitmap(bitmap);
}
} else {
addContactBtn.setText("ADD");
}
addContactBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = editTextName.getText().toString().trim();
String number = editTextNumber.getText().toString().trim();
if(nameStr == null || numberStr == null || idStr == null) {
if (insertContact(name, number) && !(name.isEmpty() || number.isEmpty())) {
Toast.makeText(getApplicationContext(), "Đã thêm liên lạc", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Lỗi không thể thêm liên lạc", Toast.LENGTH_LONG).show();
}
} else {
if(updateContact(idStr, name, number)) {
Toast.makeText(getApplicationContext(), "Cập nhật 1 liên lạc", Toast.LENGTH_LONG).show();
//snackBar(v, "Contact updated.");
} else {
Toast.makeText(getApplicationContext(), "Lỗi không thể cập nhật liên lạc", Toast.LENGTH_LONG).show();
}
}
editTextName.setText("");
editTextNumber.setText("");
}
});
}
// Insert contact
public boolean insertContact(String firstName, String mobileNumber) {
ContentResolver contentResolver = this.getContentResolver();
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, firstName).build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, mobileNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE).build());
try {
contentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
return false;
}
return true;
}
boolean updateContact(String id, String name, String number) {
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ops.add(ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE
+ "=?", new String[]{id, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE})
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
.build());
ops.add(ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE
+ "=? AND " + ContactsContract.CommonDataKinds.Organization.TYPE + "=?"
, new String[]{id, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
, String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)})
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number)
.build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch(Exception e) {
e.printStackTrace();
return false;
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}
最佳答案
在您的onActionItemClicked()
中您不应将 R.id.saveContact
类型转换为 Button
。您可以将其视为 View
类型直接使用。
View button2= getActivity().findViewById(R.id.saveContact);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), AddContactActivity.class);
startActivity(intent);
}
});
关于java - android.support.v7.internal.view.menu.ActionMenuItemView 无法转换为 android.widget.Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165496/
解释 onCreateOptionsMenu(Menu menu) 和 onPrepareOptionsMenu(Menu menu) 的区别。 最佳答案 onCreateOptionsMenu()
所以我又一次为一些问题而苦苦挣扎。这次是这样的,当我将鼠标悬停在 portfoilio 的下拉菜单上时(当网站处于移动 View 模式时),它只会越过其他元素,我尝试使所有内容相对,删除 float
我正在为移动设备设置新菜单。一切都设置好了,但在我点击任何菜单项后,它并没有关闭菜单和菜单覆盖。 有什么办法解决这个问题吗? 我在下面提供了我的 CSS 和 HTML 代码。 CSS margin
我正在使用 selenium webdriver 为单页 Web 应用程序开发一个 Java 框架,使用以下模式:PageObject、SlowLoadableComponent(责任链)、PageF
我是一个动态创建和选项菜单,选项菜单取决于 onCreate() 阶段创建的数据。 问题在于 onCreateOptionsMenu() 在创建数据之前被调用。有没有办法在onCreate()之后执行
HTML: Portfolio Services About Testimonials Request a Quote CSS: ul#menu li {
我是 extjs 的新手。我想在从 Ext.menu.Menu 选择菜单项时关联一个商店。我正在使用 extjs 4.1.0。我在网上搜索甚至通过 sencha doc 但我找不到任何方法来实现这一目
我正在使用 Bootstrap 3.0.0 制作网站 除了下拉菜单不起作用之外,一切都很好。 在文件的头部,我做出了以下声明: 有什么东西不见了? html 应该是正确的:
我刚刚开始学习 JQuery/JavaScript,我无法弄清楚使用 (".menu") 和 ("menu") 之间的区别以及应该在哪里使用它们? 最佳答案 它是menue,jquery使用css选择
我正在尝试向我的应用程序页面之一添加菜单,但由于某种原因,它没有出现。我使这个特定页面扩展了 AppCompactActivity 并覆盖了 onCreateOptionsMenu(Menu menu
我需要完全控制透视菜单。 我已经侵入平台以禁用上下文菜单: private void disablePerspectiveToolbarMenu() { PerspectiveBarManag
假设我有一个包含一些项目的菜单 (Ext.menu.Menu)。显示菜单时,用户 cat 右键单击它的项目,将显示浏览器上下文菜单(带有“将链接另存为...”等元素)。 如何禁用该浏览器上下文菜单
我有一个按钮,单击后将展开一个菜单项,我希望能够通过 java 脚本控制台以编程方式单击其中一个菜单项。这是我单击按钮所需的内容,但在单击 Ext.menu.Menu 时需要一些帮助 var fire
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 5年前关
在这里,我正在从事 safari 扩展开发。我已经在 safari 浏览器上成功获得了开发者证书。 在这里,我可以在工具栏项上创建菜单和子菜单,但根据我的项目要求,我必须在栏中包含菜单和菜单项。 请建
我正在使用 Java 和 Android Studio。我需要更改操作栏上的图像。我需要做的是根据从远程传感器接收到的读数来更改在操作栏上显示的图像。因此,我无法使用可点击的方法,而是使用一些代码在从
亲爱的..我有一个问题。在 Firebug 展上: $("#menu ul.menu").lavaLamp 不是 menu.js 中的函数 悬停在菜单上不显示。我把这个问题显示出来:
因此,我接到了一项任务,即使用 CSS 为网页创建一个汉堡包式多级菜单。这里的问题是添加一个子菜单,使其成为一个多层次的汉堡包。下面是我到目前为止为汉堡包多级菜单编写的代码片段 body { marg
我正在学习 Android 并遵循简单的相机应用教程。我复制了一段代码,但出现错误,我不确定原因。 我使用的教程是, http://iwearshorts.com/blog/android-devel
我的/About 中有一个包含路线的子菜单。 这个子菜单称为 AboutMenu 并出现在/About 下的所有页面,例如 =>/About/Company 和/About/Info。 练习示例显示
我是一名优秀的程序员,十分优秀!