设置的Andr​​oid的EditText的高度不起作用,它涵盖了整个屏幕 [英] Setting height of Android EditText does not work, it covers whole screen

查看:109
本文介绍了设置的Andr​​oid的EditText的高度不起作用,它涵盖了整个屏幕的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想设置Android的一个EditText的高度和宽度,但它不工作。它涵盖了整个屏幕。

我要的是做一个小广场带有圆角。并在它,它应该是可能的最多10个字母写出,并且当用户presses输入,它将关闭。

这一切都不似乎简单。

 公共静态的EditText makeEditText(最终上下文的背景下,字符串文字,诠释的x,INT Y,INT ID,INT W,INT小时,
        INT TEXTSIZE,资源RES,INT RESOURCE_ID,最终GameFragment gameFragment,
        最后HighscoresDatabaseHandler dbhandler,最终诠释的水平,最终诠释时间)
{
    最终的EditText nameEdit =新的EditText(背景);
    nameEdit.setWidth(重量);
    nameEdit.setHeight(H);
    nameEdit.setAllCaps(真);
    nameEdit.setTextSize(TEXTSIZE);
    nameEdit.setTextColor(0xFF7F5000);
    //nameEdit.setBackground(res.getDrawable(RESOURCE_ID));
    nameEdit.setX(X);
    nameEdit.setY(Y);
    nameEdit.setAlpha(Constants.ALPHA_OPAQUE);
    nameEdit.setText(文本);
    nameEdit.setId(ID);    nameEdit.setOnEditorActionListener(
            新EditText.OnEditorActionListener()
            {
                @覆盖
                公共布尔onEditorAction(TextView的V,INT actionId,KeyEvent的事件)
                {
                    如果(actionId == || EditorInfo.IME_ACTION_SEARCH
                            actionId == || EditorInfo.IME_ACTION_DONE
                            event.getAction()== KeyEvent.ACTION_DOWN&放大器;&放大器;
                            event.getKey code()== KeyEvent.KEY code_ENTER)
                    {
                        如果(!event.isShift pressed())
                        {
                            gameFragment.setPlayerName(v.getText()的toString());
                            dbhandler.updateHighscore(新积分榜(
                                    水平,
                                    v.getText()。的toString()
                                    时间 ) );
                            nameEdit.clearFocus();
                            ((ViewGroup中)((MainActivity)上下文).findViewById(android.R.id.content))removeView(nameEdit)。                            FragmentManager fragmentManager =((MainActivity)上下文).getSupportFragmentManager();
                            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                            fragmentTransaction.replace(R.id.fragment_content,新ChooseLevelFragment(),chooselevel);
                            fragmentTransaction.commit();                            返回true;
                        }
                    }                    返回false;
                }
            });    返回nameEdit;
}                的EditText nameEdit = ButtonUtils.makeEditText(
                    getActivity(),
                    输入名字,
                    30,
                    30,
                    RESULT_BUTTON_ID + 1,
                    100,
                    50,
                    15,
                    getResources(),
                    R.layout.start_finish_button,
                    这个,
                    dbHandler,
                    水平,
                    时间 );
            ((ViewGroup中)(theActivity).findViewById(android.R.id.content))addView(nameEdit)。


解决方案

尝试使用

  nameEdit.setLayoutParams(新的LayoutParams(W,H));

而不是

  nameEdit.setWidth(W);
nameEdit.setHeight(H);

I am trying to set the height and width of an EditText in Android but it does not work. It covers the whole screen.

What I want is to make a small square with rounded corners. And in it, it should be possible to write a maximum of 10 letters and when the user presses enter, it will close down.

None of this seems straightforward.

public static EditText makeEditText( final Context context, String text, int x, int y, int id, int w, int h,
        int textSize, Resources res, int resource_id, final GameFragment gameFragment,
        final HighscoresDatabaseHandler dbhandler, final int level, final int time )
{
    final EditText nameEdit = new EditText( context );
    nameEdit.setWidth( w );
    nameEdit.setHeight( h );
    nameEdit.setAllCaps( true ); 
    nameEdit.setTextSize( textSize );
    nameEdit.setTextColor( 0xFF7F5000 );
    //nameEdit.setBackground( res.getDrawable( resource_id ) );
    nameEdit.setX( x );
    nameEdit.setY( y );
    nameEdit.setAlpha( Constants.ALPHA_OPAQUE );
    nameEdit.setText( text );
    nameEdit.setId( id );

    nameEdit.setOnEditorActionListener(
            new EditText.OnEditorActionListener() 
            {
                @Override
                public boolean onEditorAction( TextView v, int actionId, KeyEvent event ) 
                {
                    if ( actionId == EditorInfo.IME_ACTION_SEARCH || 
                            actionId == EditorInfo.IME_ACTION_DONE ||
                            event.getAction() == KeyEvent.ACTION_DOWN &&
                            event.getKeyCode() == KeyEvent.KEYCODE_ENTER) 
                    {
                        if ( !event.isShiftPressed() ) 
                        {
                            gameFragment.setPlayerName( v.getText().toString() );
                            dbhandler.updateHighscore( new Highscore( 
                                    level, 
                                    v.getText().toString(), 
                                    time ) ); 
                            nameEdit.clearFocus();
                            ((ViewGroup) ((MainActivity)context).findViewById( android.R.id.content )).removeView( nameEdit );

                            FragmentManager fragmentManager = ((MainActivity)context).getSupportFragmentManager();
                            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                            fragmentTransaction.replace( R.id.fragment_content, new ChooseLevelFragment(), "chooselevel" );
                            fragmentTransaction.commit();

                            return true;
                        }                
                    }

                    return false;
                }
            });

    return nameEdit;
}



                EditText nameEdit = ButtonUtils.makeEditText( 
                    getActivity(), 
                    "Enter name", 
                    30,
                    30, 
                    RESULT_BUTTON_ID+1, 
                    100, 
                    50,
                    15, 
                    getResources(), 
                    R.layout.start_finish_button,
                    this,
                    dbHandler,
                    theLevel,
                    time );
            ((ViewGroup) (theActivity).findViewById( android.R.id.content )).addView( nameEdit );

解决方案

try to use

nameEdit.setLayoutParams(new LayoutParams(w,h));

instead of

nameEdit.setWidth( w );
nameEdit.setHeight( h );

这篇关于设置的Andr​​oid的EditText的高度不起作用,它涵盖了整个屏幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆