Android QQ 로그 인 인터페이스 코드 그리 기
먼저 효과 도 보기:
우선 과정 에서 부 딪 힌 몇 가지 문제:
1.EditText 사용자 정의 배경
2,실행 시 자동 편집 텍스트 자동 초점 획득
3.초점 을 얻 었 을 때 hint 를 비 웁 니 다.입력 후 비 우 는 것 이 아 닙 니 다.
4.삭제 버튼 이 나타 날 때(초점 을 얻 고 입력 내용 이 있 을 때)
--- 이 문제 들 은 모두 하나하나 해결 되 었 다.
다음은 코드:
레이아웃 fragmentmain(문제 2)
<!-- android:focusable="true"
android:focusableInTouchMode="true"
EditText ! -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ECEDF1"
android:focusable="true"
android:focusableInTouchMode="true"
tools:context="com.dragon.android.qqlogin.MainActivity$PlaceholderFragment" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp"
android:layout_marginTop="40dp"
android:src="@drawable/a" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/imageView1"
android:ems="10"
android:background="@drawable/bg_edittext"
android:inputType="textPersonName"
android:gravity="center"
android:textColor="#6A6A6C"
android:hint="@string/inaccount"
android:textColorHint="#ECEDDD">
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editText1"
android:ems="10"
android:background="@drawable/bg_edittext"
android:inputType="textPassword"
android:gravity="center"
android:textColor="#6A6A6C"
android:hint="@string/inpwd"
android:textColorHint="#ECEDDD" >
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/editText2"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_button"
android:text="@string/button"
android:gravity="center"
android:textColor="#F9FAFB" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="10dp" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/faillogin"
android:textColor="#0EB1EF" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/regist"
android:textColor="#0EB1EF" />
</LinearLayout>
<Button
android:id="@+id/button2"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_alignTop="@id/editText1"
android:layout_marginTop="15dp"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:background="@drawable/clear"
android:visibility="invisible" />
<Button
android:id="@+id/button3"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_alignTop="@id/editText2"
android:layout_marginTop="15dp"
android:layout_alignLeft="@+id/button2"
android:background="@drawable/clear"
android:visibility="invisible" />
</RelativeLayout>
Button 과 EditText 의 배경(문제 1)1.bg_button
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="1px" android:color="#00ACED" />
<solid android:color="#00ACED" />
<corners android:radius="10dp" />
</shape>
2.bg_edittext
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="1px" android:color="#ECEDF1" />
<solid android:color="#F9FAFB" />
<corners android:radius="10dp" />
<padding
android:top="10dp"
android:bottom="10dp"/>
</shape>
3.strings
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">qqloginnew</string>
<string name="action_settings">Settings</string>
<string name="button"> </string>
<string name="faillogin"> ?</string>
<string name="regist"> </string>
<string name="inaccount">QQ / / </string>
<string name="inpwd"> </string>
<string name="sucess"> </string>
</resources>
MainActivity(문제 3,4....)
package com.dragon.android.qqloginnew;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText editText1;
private EditText editText2;
// private Button button;
private Button clearButton1;
private Button clearButton2;
// strings
// private String string2 = getResources().getString(R.string.inaccount);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
// button = (Button) findViewById(R.id.button1);
clearButton1 = (Button) findViewById(R.id.button2);
clearButton2 = (Button) findViewById(R.id.button3);
// EditText
editText1.setOnFocusChangeListener(new EditTextListener(clearButton1));
editText2.setOnFocusChangeListener(new EditTextListener(clearButton2));
//
clearButton1.setOnClickListener(new ClearButtonListener());
clearButton2.setOnClickListener(new ClearButtonListener());
// EditText
editText1.addTextChangedListener(new MyEditTextWatcher(editText1));
editText2.addTextChangedListener(new MyEditTextWatcher(editText2));
}
/**
* EditText
*
* @author Auser
*
*/
class MyEditTextWatcher implements TextWatcher {
private CharSequence temp;
private EditText editText;
public MyEditTextWatcher(EditText editText) {
this.editText = editText;
}
@Override
// int start , int count , int after
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// s , start count , s 。 after 。
}
@Override
// int start , int before , int count
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// s , start count , s 。 before 。
temp = s;
}
@Override
//
public void afterTextChanged(Editable s) {
if (temp.length() > 0) {
//
if (editText == editText1) {
clearButton1.setVisibility(View.VISIBLE);
} else if (editText == editText2) {
clearButton2.setVisibility(View.VISIBLE);
}
} else {
//
if (editText == editText1) {
clearButton1.setVisibility(View.INVISIBLE);
} else if (editText == editText2) {
clearButton2.setVisibility(View.INVISIBLE);
}
}
}
}
/**
*
*
* @author
*
*/
class ClearButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
if (view == clearButton1) {
editText1.setText("");
} else if (view == clearButton2) {
editText2.setText("");
}
}
}
/**
*
*
* @author Auser
*
*/
class EditTextListener implements OnFocusChangeListener {
private Button clear;
public EditTextListener(Button clear) {
this.clear = clear;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
EditText textView = (EditText) v;
String hint;
if (hasFocus) {
//
if (!textView.getText().toString().equals("")) {
clear.setVisibility(View.VISIBLE);
}
// if (textView == editText2) {
// //
// textView.setInputType(InputType.TYPE_CLASS_TEXT
// | InputType.TYPE_TEXT_VARIATION_PASSWORD);
// }
hint = textView.getHint().toString();
// TextView
textView.setTag(hint);
textView.setHint("");
} else {
//
clear.setVisibility(View.INVISIBLE);
// if (textView == editText2) {
// //
// textView.setInputType(InputType.TYPE_CLASS_TEXT
// | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
// }
//
hint = textView.getTag().toString();
textView.setHint(hint);
}
}
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.