大家好,我是Android编程的新手(2个月),所以我希望你能原谅我的愚蠢问题,这让我疯狂了好几个小时。我开发了一个应用程序,其第一页是以下登录表单:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:scrollbars="vertical" android:scrollbarStyle="insideOverlay" android:layout_height="fill_parent" android:scrollbarAlwaysDrawVerticalTrack="true" android:gravity="top" android:id="@+id/LinearLayoutConnect" android:paddingTop="0px" android:paddingLeft="20px" android:paddingRight="10px" android:paddingBottom="20px">
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarSize="10px" android:scrollbarStyle="insideOverlay" android:addStatesFromChildren="true" android:id="@+id/ScrollView03">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/LinearLayout02">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/connect" android:paddingTop="25px">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.envCode" android:id="@+id/label_env" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/env" android:layout_weight="67"></EditText>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingTop="15px">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.email" android:id="@+id/label_login" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/login" android:layout_weight="67"></EditText>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingTop="15px">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.password" android:id="@+id/label_password" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/password" android:password="true" android:layout_weight="67"></EditText>
</LinearLayout>
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:enabled="true" android:text="@string/connect.remember" android:id="@+id/che_user_save" android:layout_gravity="center" android:paddingTop="20px"></CheckBox>
<TableLayout android:id="@+id/TableLayoutconnect" android:layout_height="wrap_content" android:visibility="visible" android:layout_width="fill_parent" android:paddingTop="20px">
<TableRow android:id="@+id/TableRowconnect01" android:layout_height="wrap_content" android:layout_width="fill_parent">
<Button android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.connect" android:id="@+id/auth_button_connect" android:layout_weight="52"></Button>
<Button android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/global.reset" android:id="@+id/auth_button_reset" android:layout_weight="48"></Button>
</TableRow>
</TableLayout>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/connect.link" android:width="266sp" android:gravity="center" android:layout_marginTop="20sp" android:padding="4sp" android:background="#fe0000" android:textColor="#ffffff" android:id="@+id/PromoBar" ></TextView>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/disconnect">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/global.disconnect" android:id="@+id/auth_button_disconnect" android:layout_weight="60"></Button>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
这是相关的Java代码:
env = (EditText) findViewById(R.id.env);
txt_login = (EditText) findViewById(R.id.login);
txt_password = (EditText) findViewById(R.id.password);
but_connect = (Button) findViewById(R.id.auth_button_connect);
but_connect.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
XMLRPC_connect();
}
});
but_reset = (Button) findViewById(R.id.auth_button_reset);
but_reset.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
try {
ClearSettings(getBaseContext(),filename_settings);
env.setText("");
txt_login.setText("");
txt_password.setText("");
} catch(Exception e) {}
}
});
问题是: 在以前的Android版本中(最多2.2个),所有按钮和EditText字段都是完全可点击和可编辑的 在Android 2.3上(在Eclipse下使用模拟器 - 没有真正的设备),屏幕对触摸或点击完全不敏感:没有任何元素可以选择和突出显示,只有使用轨迹球或键盘才可以这样做,结果很烦人。屏幕本身不可滚动 我试图强制所有TextEdit字段和Buttons可编辑,可聚焦或可点击,我试图更新Eclipse ADT,我试图用Android 2.3库编译项目,......没有结果。无论我点击什么元素,它的onClick功能永远不会被触发......我真的用完了解决方案!谢谢你的帮助!
答案 0 :(得分:1)
我有三个建议:
connect
和disconnect
的LinearLayout,它们都是垂直的,并嵌入ID为LinearLayout02
的垂直LinearLayout中。结果应该是一样的。onTouchEvent
并检查触摸屏幕时是否调用此项。从那里开始逐步深入布局。