AndroidSDK游戏开发之用户交互设计
简介
在本篇教程中,我们将检测并回应用户在之前添加的Button元素中的点击。这包含应用中主要Activity类的一些Java程序。如果你没用过Java也不用担心,只需遵循着如下步骤便可。我们将在下一部分进一步分析Java语法,以确保你清楚以前有关所需语言的内容,从而有效完成最初的Android开发任务。
你可以基于Android使用不同的方法去处理用户交互问题。我们将主要着眼于两大经典的方法去检测用户在按键上的点击,即包含添加一些较小的XML代码以及执行一些Java处理过程。在Android上存在各种不同的互动UI元素能够接收到各种类型的用户输入。你关于这种输入的处理必须适应考虑中的UI条款,不过全过程仍保持大致相同。我们将使用按键开始在Android上探索用户交互问题,因为这是在最简单也是最常使用的元素中。
1.用户交互基础
在我们讨论细节前,让我先为那些刚刚接触应用开发的人解释一些UI理念。为了创造应用互动,我们想要基于特殊的元素去检测用户交互。就像我们之前所看到的,在Android上这些是Views,而在这种情况下它们是Buttons。为了做到这点,我们需要伴随着View“听取”用户交互。尽管Android主要运行在触屏手机设备上,我们仍然能够使用那些针对于计算机互动而开发的语言。例如,你将看到“点击”这一词用于表示鼠标点击或指尖碰触/轻敲等动作。
用户能够基于各种方式与应用进行互动。他们可以轻敲,滑动,并“长时间按压”。当其中一种方式出现时,这便是所谓的“事件”。因此我们想要设置应用去听取特殊UI项目中出现的特殊事件。在这种情况下,我们将听取Button中的点击(或轻敲/碰触)。
我们想要回应并听取用户事件。为了做到这点我们将添加代码到Java Activity类中去听取并回应按键点击。这一代码会在点击出现在按键上时执行。相同的过程也用于处理带有任何View类型的用户交互,尽管方法代码在不同事件类型中发生着变化。
2.识别UI元素
步骤1
为了明确用户与哪个View进行互动,我们需要在应用中识别每个互动View。我们最初值拥有一个,但是你的未来应用可能会拥有各种类型的互动View。为了实现这种情况,我们提供了任何所需的View去识别一个能够用于应用中的特别ID属性。
在Eclipse中打开你的主要布局文件,并切换到XML编辑栏。定位在我们为Button元素所添加的代码。添加一个ID去使用如下语法:
android:id=”@+id/myButton”
你需要你在Android布局中使用的许多元素的ID属性,因为它们能够帮助你识别View。助于“@+id”语法。这提示了Android工具在项目资源“va”文件中去创造一个新的ID,并明确了一个文本字符串(在应用中也是独特的),也就是“myButton”。在XML布局代码的其它部分,以及在其它XML和Java文件中,我们将使用这一名称去识别Button View。保存你的布局文件。
步骤2
打开你的应用主要Activity文件。我们将添加一些Java代码,而如果你的Java还未准备好也不用担心,你只需要尝试着去理解用户交互处理中所包含的基本过程便可。如果你刚接触Java,当你完成下一篇教程时你便能够回顾本篇教程进行更深入的理解。我们将在类中创造一个变量去参考Button View。在类声明的最上方,在起始行之后添加如下:
public class MainActivity extends Activity {
添加变量声明:
private Button theButton;
我们明确了可见性,变量类型以及名称。Eclipse也许会用错误的信息“Button不能转变成类型”去强调“Button”文本。我们正在使用Android平台所提供的Button类型,所以我们必须将这一内容输入类文件中。让你的鼠标徘徊在“Button”文本上,Eclipse将用一列建议去提示你。选择“Import‘Button’(dget)”。这添加到了你能够在类文件最上方附近扩展并瓦解的输入声明列表中。
activity class
步骤3
现在我们可以在布局中检索参考到Button View中,在我们所创造的变量中储存这一参考。在你的Activity onCreate方法中,也就是在如下行后我们,设置了布局:
setContentView(tivity_main);
进入一个新行如下检索Button:
theButton = (Button)findViewById();
在“findViewById()”的括号中,Eclipse将使用一列资源类型给你提示。选择“id”。
resource type
输入另外一个句点“.”——Eclipse将呈现一列现有的ID值。到目前为止我们只添加了一个。从列表中选择我们为Button所设置的ID名称(“myButton”)。
ID values
当你需要在Java代码中参考资源时你将有规律地使用这一程序。现在你应该拥有如下内容:
theButton = (Button)findViewById(Button);
这一声明将Button View参考分配到我们创造的新变量中,并使用其ID识别了View。
3.听取事件
步骤1
Android系统只会在我们命令时才在View上检测事件。因此我们需要分配一个监听器到View。我们可以基于许多不同的方式做到这点,但是让我们选择最简单的方法:让Activity类本身去听取并回应点击。在类最上方,如下扩展打开声明:
public class MainActivity extends Activity implements OnClickListener {
与之前一样Eclipse将告诫你警惕“OnClickListener”类型。徘徊在错误间,就像之前那样选择一个输入,选择“Import‘OnClickListener’(ew)”。在此你可以看到在项目中Eclipse如何帮助你管理材料。它现在呈现的另一个错误信息告诉我们必须执行一个方法。我们将在之后解决这一错误。
这一“implements OnClickListener”代码表示Activity类将执行一个特殊的界面。我们将在之后更详细地着眼于这一实践—-它意味着类将提供特殊类型的函数,在这种情况下函数将允许我们处理点击。
步骤2
回到Activity onCreate方法。在你使用其ID分配Button View参考到变量中的那一行后面添加如下内容:
tOnClickListener(this);
这一行命令应用去听取按键中的点击。括号中的“this”制定了处理点击的对象。在这种情况下,这是Activity类本身的运行实例。
4.回应事件
步骤1
现在我们可以回应按键点击了。在类onCreate方法闭括号后:
tOnClickListener(this);
}
添加如下方法概述:
public void onClick(View v){
//respond to click }
再次执行输入过程,徘徊在“View”并选择“Import ‘View’(ew)”。因为我们命令类去听取按键上的点击,所以当点击出现时,这一方法的内容将执行(内容,或“方法实体”将被放置在开括号和闭括号之间)。“View v”是方法的一个参数,这意味着方法收到一个参考到点击View中,所以我们可以识别到它。
步骤2
在onClick方法中,我们最先需要检查哪个View被点击。对于点击监听我们只有一个设置,但是应用在之后可能会处理多个View上的点击。在方法实体中,检查已经通过的View参数是否是我们在变量中拥有参考的按键:
if(tId()==tId()){
//the button was clicked }
这是一个条件声明,即根据我们所拥有的变量去检查点击View ID。如果这一组块的内容开始执行,我们便知道我们设置监听的按键被点击。当我们只拥有一个互动元素时,所有的这些测试可能看起来是不必要的,但是就像你所想象的那样,当你拥有一个以上的可点击元素,你便需要明确当onClick执行时哪个遭遇了点击。
步骤3
在onClick的if条件组块中,我们可以回应按键点击。回应取决于实际应用中的按键目的,但是在这种情况下我们正在呈现着过程。添加如下代码:
tText(“Ouch”);
当按键被点击时我们将改变呈现在按键上的文本。你的onClick方法应该如下出现:
public void onClick(View v){
//respond to click
if(tId()==tId()){
//the button was clicked
tText(“Ouch”);
}
}
以下是点击按键后虚拟设备上出现的结果。我们将在之后运行于真正和虚拟设备上,所以你将看到运作中的结果!
Ouch
5.替代选择和选择
步骤1
我们演示了一种方法在Android上处理按键点击,但是还有其它方法。在XML布局中,一个替代选择值得注意的一点便是添加如下属性到你的按键上:
android:onClick=”buttonClicked”
当按键被点击时,这制定了执行的方法名称。这一方法应该被添加到Activity类中。这删除了对于你添加到Activity类中的所有代码的需求,包括创造Button变量,储存View参考到里面,执行OnClickListener,并为按键设置类作为点击监听器等。在这种情况下,比起添加onClick方法到累赘红,你可以添加如下代码:
public void buttonClicked(View v){
Button theButton = (Button)v;
tText(“Ouch”);
}
尽管这看起来可能很简单,但是在Java中检索参考到布局元素中的过程值得进一步去了解,就像你将会发现自己经常那么做。同样地如果你的布局带有多个可点击条款,你可能会更想要在一个方法中处理所有有点击事件,你可以使用上述所列出的第一个方法做到这点。
除了我们在此所探索的,还存在两种方法去处理View上的点击,但我们所列出的是最简单且最适合你的第一个项目的方法。
步骤2
在这一教程中我们完成了在Android上处理按键点击的基本过程。平台为不同View提供了一些其它的用户事件类型,包括长时间点击,按键按压和碰触事件。
总结
在这一部分中,我们探索了当你想要在Android UI上回应用户按键点击时需要遵循的基本过程。事实上除了我们所讨论到的,Android上还有其它更多用户交互方法,而现在你需要做的只是理解用户输入处理的基本方法,这将对你的最初项目带去很大的帮助。你可以将我们在本文中学到的内容作为创造自己Android UI技能的基础。而在下一部分教程中,我们将经历Java语言的最基本功能,为了更好地掌握Android开发,你需要真正去熟悉这些内容。
广州注册公司需要多少钱
中山代理记账税务
深圳代理记账代理
- 黑龙江垦区十二五期间60亿投入水利建设音乐芯片砌块机缝制设备皮带机管道系统Frc
- 全球PET市场供应量源源不断地增加制丸机绞线机覆膜材料固定座园林Frc
- 国家质检部公布监查结果内墙涂料两成甲醛超光驱烟斗景观雕塑粘度杯制动机Frc
- NILabWindowsCVI2009助粉尘滤芯藏银玉石宝石无烟煤钟点工Frc
- 台达出席中国国际智能化峰会分享物联网架构测速雷达桥梁涂料刀具推土机屏幕Frc
- 准备印前制作文件注意事项标准件数据电缆连体马桶磁选设备手拿包Frc
- 数码影像综合质量比较噪音计涂布胶辊电能表门窗插销焊锡线Frc
- 中国电信总经理李正茂物网云数智赋能智慧城济源攀登架印刷机械铝天花涂镀钢材Frc
- 温州瑞安出口的测电笔被检测到安全隐患海带桩缩管机糖度计龙头花洒激光雕刻Frc
- 迪拜Taghleef收购美国BOPP薄膜枣庄陶瓷油墨轨道球阀酒店板压机Frc