android 控件响应的各种方法

</pre><p><pre name="code" class="html">
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/color" />

    <Button
        android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_width="80sp"
        android:text="@string/red" />

    <Button
        android:id="@+id/button2"
        android:layout_width="80sp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/black" />

</LinearLayout>


第一种方法是使用setOnXXXListener()设置事件处理函数。
在获取句柄时需要转换成相应的控件类型,findViewById()函数的参数是一个整数,返回值是一个android.view.View类型。通过R.id.XXX找到布局文件中定义的ID,然后通过将基础类转换成其实际的类获得真正的句柄。注意:所转换类必须和布局文件中描述的控件一致。
SetOnXXXListener()等函数是android.view.View类的函数,各种控件(包括Button、EditText)都扩展这个类,同族的函数包括:
void setOnClickListener(View.OnClickListener l);
void setOnFocusChangeListener(View.OnFocusChangeListener l);
void setOnKeyListener(View.OnKeyListener l);
void setOnLongClickListener(View.OnLongClickListener l);
void setOnTouchListener(View.OnTouchListener l);
这些函数用于事件处理,它们由程序实现,通过设置这些内容也就设置了控件的行为。这些函数的参数都是所对应的android.view.View类中的方法。
Android中UI基本控制内容:使用findViewById()联系布局文件中控件和句柄,并通过OnClickListener()等定制句柄的行为。

public class testevent extends Activity {
<span style="white-space:pre">	</span>protected void onCreate(Bundle savedInstanceState)
<span style="white-space:pre">	</span>{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.testevent);
        final TextView textview = (TextView)findViewById(R.id.textView1);
        final Button redButton = (Button)findViewById(R.id.button1);
        final Button blackButton = (Button)findViewById(R.id.button2);
        
        redButton.setOnClickListener(new View.OnClickListener()
<span style="white-space:pre">			</span>{


<span style="white-space:pre">				</span>@Override
<span style="white-space:pre">				</span>public void onClick(View arg0) 
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>// TODO Auto-generated method stub
<span style="white-space:pre">					</span>textview.setBackgroundColor(Color.RED);
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>);
        
        
        blackButton.setOnClickListener(new View.OnClickListener()
<span style="white-space:pre">			</span>{


<span style="white-space:pre">				</span>@Override
<span style="white-space:pre">				</span>public void onClick(View arg0) 
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>// TODO Auto-generated method stub
<span style="white-space:pre">					</span>textview.setBackgroundColor(Color.BLACK);
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>);
        
        
        
        
<span style="white-space:pre">	</span>}
}


第二种方法是让活动实现(implements)了OnClickListener()这个接口,也就是需要实现其中的onClick()方法。然后通过setOnClickListener()将其设置到按钮中的参数就是this,表示了当前的活动。

public class testevent extends Activity implements OnClickListener {
<span style="white-space:pre">	</span>TextView textview;
    Button redButton;
    Button blackButton;
    
<span style="white-space:pre">	</span>protected void onCreate(Bundle savedInstanceState)
<span style="white-space:pre">	</span>{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.testevent);
  
        textview = (TextView)findViewById(R.id.textView1);
        redButton = (Button)findViewById(R.id.button1);
        redButton.setOnClickListener(this);
        blackButton = (Button)findViewById(R.id.button2);
        blackButton.setOnClickListener(this);
        
        redButton.setOnClickListener(new View.OnClickListener()
<span style="white-space:pre">			</span>{


<span style="white-space:pre">				</span>@Override
<span style="white-space:pre">				</span>public void onClick(View arg0) 
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>// TODO Auto-generated method stub
<span style="white-space:pre">					</span>textview.setBackgroundColor(Color.RED);
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>);
        
        
        blackButton.setOnClickListener(new View.OnClickListener()
<span style="white-space:pre">			</span>{


<span style="white-space:pre">				</span>@Override
<span style="white-space:pre">				</span>public void onClick(View arg0) 
<span style="white-space:pre">				</span>{
<span style="white-space:pre">					</span>// TODO Auto-generated method stub
<span style="white-space:pre">					</span>textview.setBackgroundColor(Color.BLACK);
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>);*/
        
        
        
        
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void onClick(View v) {
<span style="white-space:pre">		</span>// TODO Auto-generated method stub
<span style="white-space:pre">		</span>switch (v.getId())
<span style="white-space:pre">		</span>{
<span style="white-space:pre">		</span>case R.id.button1:
<span style="white-space:pre">			</span>textview.setBackgroundColor(Color.RED);
<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>case R.id.button2:
<span style="white-space:pre">			</span>textview.setBackgroundColor(Color.BLACK);
<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>default:
<span style="white-space:pre">				</span>break;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值