Java for android – Instanceof

今晚寫了些Java For Android Demo ,也有幾日沒寫了,卻越發生疏了。在開發時,不免有些類型比較區分,java有個關鍵字是極好的了,Instanceof  比較類型是否相同 , android中所有UI組件皆繼承自View類,我們可以得到界面根Layout,而一般佈局對象皆是繼承自ViewGroup,可以使用如下方法得到其容器下的子視圖 ,int getChildCount()獲取到其子視圖的個數,getChildAt(int index)則是取得子視圖的對象,然後獲取各個UI組件,接着根據各組件類型的不同,分別作出不同的效果 , 可也是甚好的了。如下Java Code




package com.zy.javaforandroid;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
 * java for android
 * 
 * @author byxiaozhu <[email protected]>
 *  
 * java instanceof 類型驗證
 */
public class InstanceOfActivity extends ActionBarActivity
{
private static final String TAG = "byxiaozhu";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// 得到佈局對象 , 並獲取到佈局對象中所有子對象的總數
LinearLayout layoutRoot = (LinearLayout) this.getLayoutInflater()
.inflate(R.layout.activity_instance, null);
setContentView(layoutRoot);
int childCount = layoutRoot.getChildCount();
Log.i(TAG, "childCount = " + childCount);
Log.i(TAG, layoutRoot.toString());
if (childCount > 0)
{
/**
* 遍歷佈局對象中的組件,並驗證類型匹配
*/
for (int i = 0; i < childCount; i++)
{
final View childView = layoutRoot.getChildAt(i);
Log.i(TAG, childView.toString());
if (childView instanceof Button)
{
childView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(InstanceOfActivity.this,
"點擊的是Button按鈕", Toast.LENGTH_SHORT).show();
Log.i(TAG, childView.toString());
}
});
} else if (childView instanceof TextView)
{
childView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(InstanceOfActivity.this,
"點擊的是TextView文本", Toast.LENGTH_SHORT)
.show();
}
});
}
}
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章