2011-03-14 145 views
1

大家好我在Android编程方面很新颖(2个月),所以我希望你能原谅我这个愚蠢的问题,这让我疯狂了好几个小时。我已经开发了具有作为第一页下面的​​登录表单的应用程序:android 2.3:页面元素不可点击

<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字段和按钮可编辑,可聚焦或可点击,我试图更新Eclipse ADT,我试图用Android 2.3库编译项目,...没有结果。无论点击什么元素,其onClick函数都不会触发......我真的用完了解决方案!谢谢你的帮助!

+0

我也有这个问题只在2.3。删除滚动视图解决了问题。谢谢! – Robert 2011-09-08 11:08:58

回答

1

我有三个建议:

  1. 我认为你可以用id connectdisconnect它们都是垂直和嵌入在一个垂直的LinearLayout id为LinearLayout02摆脱的LinearLayout的。结果应该是一样的。
  2. 覆盖活动中的onTouchEvent,并检查当您触摸屏幕时是否调用此函数。从那里开始一步一步走向更深层次的布局。
  3. 尝试一次删除一个视图/布局。也许你找到这种方式的原因....
+1

感谢您的回答:事实上,问题仅仅是在同一个文件中包含多个ScrollViews(因为为了简单起见我只发布了一个ScrollViews,没有人可以知道:-P)。实际上,我切换到了一个包含多个LinearLayouts的大滚动视图,我可以按照自己的喜好显示/消失。 – ste74 2011-03-31 06:48:16