os 新建button并为button添加事件

 

NSButton *button=[[NSButton alloc]initWithFrame:CGRectMake(80, 200, 200, 80)];
    [button setTitle:@"aa"];
   [button setAction:@selector(b)];
    NSRect window_frame=[self.window frame];
    NSView *view=[[NSView alloc]initWithFrame:window_frame];
    [view addSubview:button];
    [self.window setContentView:view];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三 Android网络通信 实验目的: 本实验的目的是使学生深入了解利用Intent实现进程间的通信过程。学会利用Inten t进行Activity的跳转,以及链接网页信息;学会利用Intent将其他Activity的信息返回 到Activity的方法。体会Activity间通信的过程。 实验要求: 编程实现下述功能:主界面上有一个"登录"按钮和"链接网页"按钮,点击"登录"按钮 后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件(如下图所示 )点击"链接网页"按钮,新的Activity上面有输入Uri信息的控件,可以链接到相应的网 站,在用户关闭这个Activity后,返回到主界面 程序界面如下图所示: [实现提示] 1、建立Android工程,其 工程名称:WebCommunication579 包名称:cn.edu.bistu.dj1001. WebCommunication579 Activity名称:WebCommunication579 2、工程建立完毕后,首先进行界面设计,建立相应的子Layout界面 3、在工程添加相应的.java文件,处理各个Activity的事件响应 4、在Manifest添加新建的Activity信息,进行注册。 程序源码: 主界面java文件代码: package cn.deu.bistu.dj1001.WebCommunication579; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class WebCommunication579 extends Activity { private Button btnLogin,btnGoToWeb; private TextView show; private static final int SUBACTIVITY1 = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnLogin=(Button) findViewById(R.id.btnLogin); btnGoToWeb=(Button) findViewById(R.id.btnGoToWeb); show=(TextView) findViewById(R.id.A1show); btnLogin.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(WebCommunication592.this, activity1.class); startActivityForResult(intent, SUBACTIVITY1); }}); btnGoToWeb.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(WebCommunication592.this, activity2.class); startActivity(intent); }}); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode){ case SUBACTIVITY1: if (resultCode == RESULT_OK){Uri uriData = data.getData(); show.setText(uriData.toString()); } break; }};} 界面一java文件代码: package cn.deu.bistu.dj1001.WebC
大家好,今天给大家分享一下Android里的Context的一些用法. 这里大致可以分为两种:一是传递Context参数,二是调用全局的Context. 其实我们应用启动的时候会启动Application这个类,这个类是在AndroidManifest.xml文件里其实是默认的 为了让大家更容易理解,写了一个简单的Demo.步骤如下: 第1步:新建一个Android工程ApplicationDemo,目录结构如下: 第2步:新建一个工具类ToolsUtil.java,代码如下 package com.tutor.application; import android.content.Context; import android.widget.Toast; /** * @author carlshen. * 应用的一些工具类. */ public class ToolUtils { /** * 参数带Context. * @param context * @param msg */ public static void showToast(Context context,String msg){ Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } /** * 调用全局的Context. * @param msg */ public static void showToast(String msg){ Toast.makeText(MainApplication.getContext(), msg, Toast.LENGTH_SHORT).show(); } } 第3步:新建一个View命名为MainView.java就是我们Activity现实的View.代码如下: package com.tutor.application; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; /** * @author carlshen. * 自定义的MainView. */ public class MainView extends FrameLayout implements View.OnClickListener{ private Context mContext; private Activity mActivity; /** * 参数Button. */ private Button mArgButton; /** * 全局Button. */ private Button mGlobleButton; /** * 退出Button. */ private Button mExitButton; public MainView(Context context){ super(context); setupViews(); } public MainView(Context context, AttributeSet attrs) { super(context, attrs); setupViews(); } private void setupViews(){ //获取View的上下文. mContext = getContext(); //这里将Context转换为Activity. mActivity = (Activity)mContext; LayoutInflater inflater = LayoutInflater.from(mContext); View v = inflater.inflate(R.layout.main, null); addView(v); mArgButton = (Button)v.findViewById(R.id.arg_button); mGlobleButton = (Button)v.findViewById(R.id.glo_button); mExitButton = (Button)v.findViewById(R.id.exit_button); mArgButton.setOnClickListener(this); mGlobleButton.setOnClickListener(this); mExitButton.setOnClickListener(this); } public void onClick(View v) { if(v == mArgButton){ ToolUtils.showToast(mContext, "我是通过传递Context参数显示的!"); }else if(v == mGlobleButton){ ToolUtils.showToast("我是通过全局Context显示的!"); }else{ mActivity.finish(); } } } 这里MainView.java使用的布局main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> 第4步:修改ApplicationDemoActivity.java,代码如下: package com.tutor.application; import android.app.Activity; import android.os.Bundle; public class ApplicationDemoActivity extends Activity { private static Context aContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MainView mMainView = new MainView(this); setContentView(mMainView); aContext = getApplicationContext(); } /**获取Context. * @return */ public static Context getContext(){ return aContext; } } 第5步:运行上述工程效果如下:
http://blog.csdn.net/xiaoxiao108/article/details/7463037 最近下载了个xcode_4.3.1_for_lion.dmg ,安装 xcode 时老是提示安装失败,后来网上查了下,把mac日期修改成2012.1.1,才能安装成功。第一次写ios程序啊,程序相当简单,就一个helloworld 点击按钮触发alert事件 开发环境 mac 10.7.3 xocde4.3.1 ios5.1.x 开发步骤 1. 下载安装 xcode_4.3.1_for_lion.dmg 2.运行xcode 3.新建一个Single View Application 4.创建完成后双击文件的MainStoryboard_iPad.storyboard文件打开设计界面 5.拖个Round Rect Button控件到界面里面 6.修改ViewController.h头文件 加入代码 @interface ViewController : UIViewController { IBOutlet UIButton * btn; } -(IBAction)btnPressed:(id)sender; 7.修改ViewController.m文件 加入代码 -(void)btnPressed:(id)sender { NSLog(@"33333333"); UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"hello" message:@"zhu" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; [alert show]; } 8.右键单击View添加的按钮分别添加Touch Up Inside 跟 btnPressed, Referencing Outlets跟btn的 关联 9.虚拟机运行效果 10.真机调试时如果有如下提示,需要进行xcode破解 12. 在的越狱的板子上运行效果 备注: 一.ios5.1.1越狱步骤 1.下载Absinthe 2.0 点击Jailbreak ,最后提示Done,enjoy!越狱完成 2.在Cydia下载appsync for ios 5.0+ 二.xcode4.3.1真机调试步骤 1.创建证书 实用工具-钥匙串访问-证书助手-创建证书 名称填写:iPhone Developer 选让我覆盖这些默认值 后面填好电子邮箱地址 选代码签名 其他的默认就可以了 2.修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk目录下的 SDKSettings.plist文件 <key>CODE_SIGNING_REQUIRED</key> <string>YES</string> <key>ENTITLEMENTS_REQUIRED</key> <string>YES</string> YES 改为NO 3.修改 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform目录下 Info.plisXCiPhoneOSCodeSignContext 修改为XCCodeSignContext 4.在命令提示符执行下面代码(需联网) mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py 5.禁用Xcode自动的签名操作 6.添加自定义的生成后脚本,在Build Phases添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本 export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" fi 7.连上ios设备,点击Product-Build For -Archiving 就可以在ios设备上真机进行调试。 未连接ios设备时 为灰色 三.ipa生成步骤 1.点击show in finder 2.将finder项目名命名的文件拖到iTunes 3.再将iTunes的应用拖到桌面上就可以生成ipa文件。 如果你发现有什么不合理的,需要改进的地方,或者你有什么更好的实现方法邮件联系[email protected](qq常年不在线,邮件联系) 朱晓 。相互交流 谢谢 http://blog.csdn.net/xiaoxiao108/article/details/7463037
Tag的使用 package com.yarin.android.qiehuan; import android.app.AlertDialog; import android.app.Dialog; import android.app.TabActivity; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; import android.widget.TabHost; import android.widget.TabHost.OnTabChangeListener; public class Activity01 extends TabActivity { //声明TabHost对象 TabHost mTabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //取得TabHost对象 mTabHost = getTabHost(); /* 为TabHost添加标签 */ //新建一个newTabSpec(newTabSpec) //设置其标签和图标(setIndicator) //设置内容(setContent) mTabHost.addTab(mTabHost.newTabSpec("test1") .setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1)) .setContent(R.id.textview1)); mTabHost.addTab(mTabHost.newTabSpec("test2") .setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2)) .setContent(R.id.textview2)); mTabHost.addTab(mTabHost.newTabSpec("test3") .setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3)) .setContent(R.id.textview3)); //设置TabHost的背景颜色 mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150)); //设置TabHost的背景图片资源 //mTabHost.setBackgroundResource(R.drawable.bg0); //设置当前显示哪一个标签 mTabHost.setCurrentTab(0); //标签切换事件处理,setOnTabChangedListener mTabHost.setOnTabChangedListener(new OnTabChangeListener() { // TODO Auto-generated method stub @Override public void onTabChanged(String tabId) { Dialog dialog = new AlertDialog.Builder(Activity01.this) .setTitle("善谢谢提醒") .setMessage("现在选了:"+tabId+"标签") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } }).create();//创建按钮 dialog.show(); } }); } }
好的,以下是代码实现: 1、控件及布局 activity_main.xml文件代码如下: ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".MainActivity"> <ImageView android:id="@+id/pet_image" android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/pet_image" android:layout_centerVertical="true"/> <TextView android:id="@+id/pet_name_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="宠物名:" android:textSize="20sp" android:layout_toRightOf="@id/pet_image" android:layout_centerVertical="true"/> <EditText android:id="@+id/pet_name_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入宠物的名称" android:layout_toRightOf="@id/pet_name_label" android:layout_centerVertical="true"/> </RelativeLayout> ``` 2、控件监听事件编程 在MainActivity.java文件添加代码如下: ```java public class MainActivity extends AppCompatActivity { private Button mSubmitButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSubmitButton = findViewById(R.id.submit_button); mSubmitButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "您填报了一只宠物", Toast.LENGTH_SHORT).show(); } }); } } ``` 3、对话框编程 在activity_main.xml文件添加一个Button控件,代码如下: ```xml <Button android:id="@+id/diet_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="饮食喜好选择:" android:layout_below="@id/pet_name_input" android:layout_marginTop="16dp" android:layout_centerHorizontal="true"/> ``` 在MainActivity.java文件添加代码如下: ```java public class MainActivity extends AppCompatActivity { private Button mSubmitButton; private Button mDietButton; private boolean[] mSelected = new boolean[3]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSubmitButton = findViewById(R.id.submit_button); mSubmitButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "您填报了一只宠物", Toast.LENGTH_SHORT).show(); } }); mDietButton = findViewById(R.id.diet_button); mDietButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("饮食喜好选择:"); builder.setMultiChoiceItems(new String[]{"肉", "植物", "其它"}, mSelected, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean b) { mSelected[i] = b; } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String result = "您选择了:"; if (mSelected[0]) { result += "肉 "; } if (mSelected[1]) { result += "植物 "; } if (mSelected[2]) { result += "其它 "; } Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", null); builder.create().show(); } }); } } ``` 4、Activity编程 在MainActivity.java文件添加代码如下: ```java public class MainActivity extends AppCompatActivity { private Button mSubmitButton; private Button mDietButton; private boolean[] mSelected = new boolean[3]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSubmitButton = findViewById(R.id.submit_button); mSubmitButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, Activity2.class); startActivity(intent); } }); mDietButton = findViewById(R.id.diet_button); mDietButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("饮食喜好选择:"); builder.setMultiChoiceItems(new String[]{"肉", "植物", "其它"}, mSelected, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean b) { mSelected[i] = b; } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String result = "您选择了:"; if (mSelected[0]) { result += "肉 "; } if (mSelected[1]) { result += "植物 "; } if (mSelected[2]) { result += "其它 "; } Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", null); builder.create().show(); } }); } } ``` 然后新建一个Activity,取名为Activity2,代码如下: ```java public class Activity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); TextView textView = findViewById(R.id.diet_label); String result = getIntent().getStringExtra("result"); textView.setText("已选择饮食喜好:" + result); } } ``` 在res文件夹下新建一个layout文件夹,在其新建一个名为activity2.xml的文件,代码如下: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp"> <TextView android:id="@+id/diet_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:textColor="#000000"/> </LinearLayout> ``` 在MainActivity.java文件的mSubmitButton的点击事件添加代码如下: ```java mSubmitButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String result = ""; if (mSelected[0]) { result += "肉 "; } if (mSelected[1]) { result += "植物 "; } if (mSelected[2]) { result += "其它 "; } Intent intent = new Intent(MainActivity.this, Activity2.class); intent.putExtra("result", result); startActivity(intent); } }); ``` 这样,当点击“填写完成”按钮后,会跳转到Activity2,并在其显示所选择的饮食喜好项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值