如何在导航栏上设置对backButtonItem的操作?我有一个导航栏,当我按下后退按钮时,我需要向用户发出一些消息,并且只有在用户的反应之后 - 返回上一个视图.我该怎么做?感谢名单!
- (void)viewDidLoad
{
[super viewDidLoad];
//no one field don't changed yet
isDirty = FALSE;
//edited user
//set default values
newData = [data copy];
//setting navigation controller rigth button
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Save"
style:UIBarButtonSystemItemDone
target: self
action: @selector(saveBtnUserClick)];
self.navigationItem.rightBarButtonItem = rightButton;
[rightButton release];
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonSystemItemDone
target: self
action: @selector(backBtnUserClick)];
self.navigationItem.backBarButtonItem = leftButton;
[leftButton release];
}
Run Code Online (Sandbox Code Playgroud)
//和我的反应方法
-(IBAction) backBtnUserClick
{
NSLog(@"\n Back pressed");
//back to previous view
[self.navigationController popViewControllerAnimated: TRUE];
}
Run Code Online (Sandbox Code Playgroud) 我想我已经阅读过jquery mobile中的Back按钮存在问题?在查看使用嵌套列表的文档和演示后,我仍然缺少此后退按钮 - 这就是我尝试这个的方式:(超级简化版本,因为它仍有问题)
<div data-role="page">
<div data-role="header">....</div>
<div data-role="content">
<ul data-role="listview">
<li>Item 1
<ul><li>Item 1 - 2</li><li>Item 1 - 3</ul>
</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
<div data-role="footer">....</div>
</div>
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该有3个项目的列表 - 当点击"项目1"时,它应该带你到第二页,其中包含2个项目"项目1 - 2"和"项目1 - 3"的列表,同样在此页面应该是标题栏,"项目1"作为标题标题,还应该有一个后退按钮正确?
我也尝试过:
<div data-role="page" data-add-back-btn="true">......</div>
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我,这将是伟大的.我正在使用jQuery版本1.6.2和jQuery Mobile版本1.0b3.
我正在开发一个以android 1.6为目标的项目.
所以,我不能用
@Override public void onBackPressed(){...}
Run Code Online (Sandbox Code Playgroud)
我正在开展一项活动
startActivityForResult(intent,requestcode)
Run Code Online (Sandbox Code Playgroud)
我不想回复一些信息
@Override protected void onActivityResult (int requestCode, int resultCode, Intent data)
Run Code Online (Sandbox Code Playgroud)
问题如下:
-'Activity A'抛出'活动B'
- 在'ActivityB'中按下硬件后退按钮
-'Activity A的onActivityResult被调用,但我没有获得任何数据信息(data == null)
我试图在'活动B'中添加一些额外的信息
@Override protected void onPause(){...}
Run Code Online (Sandbox Code Playgroud)
我也叫setResult(RESULT_OK,i); 进入这个onPause,但我总是得到RESULT_CANCELED和数据== null在'活动A的onActivityResult
我拍摄照片并保存到我的画廊.当我捕捉图像并保存时,一切都很完美.但是如果相机处于打开状态,如果我按下后退按钮而不拍照,则应用程序停止.
我怎么能解决这个问题?
这是我的代码:
public class ImportCard extends Activity {
private static final int CAMERA_PIC_REQUEST = 1111;
ImageButton importimage;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_import_card);
ImageButton importimage = (ImageButton) findViewById(R.id.importimage);
importimage.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
//2
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
//3
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
//4
File …Run Code Online (Sandbox Code Playgroud) 我正在构建一个应用程序,它有 2 个打开的对话框,如果用户在某些对话框打开时按下后退按钮,我希望发生一些事情。但是,由于某种原因,当对话框打开时后退按钮事件没有注册。我通过在 onBackPressed() 中放置一个日志来测试它,每当对话没有打开并且我只是在主要活动上时,日志就会出现在 logcat 上。但是,如果对话是开放的,我只会得到这个:
W/InputEventReceiver:试图完成一个输入事件,但输入事件接收器已经被释放。
下面我放置了对话的代码:
public void pair() {
final Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
AlertDialog.Builder pairedList = new AlertDialog.Builder(this);
pairedList.setTitle("Paired Devices");
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_singlechoice);
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
arrayAdapter.add(device.getName());
}
}
pairedList.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
mBluetoothAdapter.disable();
// pair_dialog = false;
}
});
pairedList.setPositiveButton("Pair New", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivityForResult(new …Run Code Online (Sandbox Code Playgroud) 通常,当单击后退按钮时,它会转到上一个活动,如果当前活动是第一个活动,则应用程序将关闭。
我有一个启动屏幕(从逻辑上讲,这是我的第一个活动),然后加载菜单活动。
我想在菜单活动上按下后退按钮时关闭程序(就好像它是第一个活动一样),并避免再次返回到启动屏幕,但我知道我不应该退出程序。
我想知道第一个活动的后退按钮的功能是什么?它会使程序暂停吗?
我有一个简单的jQueryMobile index.html页面.在其中,我有两个页面使用data-role ="page"语法.第一页只是一个启动画面,几秒后自动更改为第二页.问题是在页面从初始页面更改为主页后,后退按钮显示(即使使用data-nobackbtn ="true").如果我刷新第二页,则隐藏后退按钮.
我在这里使用两页示例:http://jquerymobile.com/demos/1.0a4.1/#docs/pages/docs-pages.html
谢谢
我想做这样的事情.所有控制器都被推送到导航控制器上.ViewController 1 - > ViewController 2(不显示通过按下自动出现的后退按钮) - > ViewController 3(导航栏的Show Back按钮) - > ViewController 4(再次隐藏Bar按钮).
我已经尝试将标题设置为空为ViewController1,但后面的按钮不会出现在应用程序的任何位置.此外,我已经尝试将按钮设置为nil,然后在导航堆栈上推送ViewController2.但没有任何预期的效果.有人知道怎么做.注意 - 我想要在堆栈上按下viewController而不是左栏按钮项时出现的默认后退栏按钮.如果没有选项,那么我更喜欢左栏按钮项目方法.
我注意到,如果一些MessageBox出现,你甚至只需要在其上的OK按钮,用户点击从Windows Phone 7的后退按钮时,您将收到Cancel在MessageBoxResult.
有人经历过吗?
我是Apple iPhone用户.我从来没有拥有任何类型的Android,所以我习惯了按钮,我必须点击屏幕返回屏幕,而不是Android的物理"后退按钮".iPhone开发人员必须对后退按钮进行编码,以便用户操作游戏,但Android开发人员不一定需要编写后退按钮,而只需依靠手机上的物理按钮即可.
我的问题是,我是否可以不为我的Android应用程序编写按钮,只是让用户使用手机上的硬件返回按钮?如果没有可以点按的后退按钮,Android用户会本能地知道点击物理后退按钮跳回屏幕吗?我真的不知道这个答案,因为我从来没有拥有Android,总是依赖按钮编码的iPhone.
下图是我在后退按钮编码而不是依靠手机上的物理按钮.我想从我的代码中退出后退按钮.

back-button ×10
android ×5
java ×2
dialog ×1
ios ×1
iphone ×1
jquery ×1
keyevent ×1
listview ×1
messagebox ×1