Androidベースコントロール(EditView、SeekBarなど)の使い方

12115 ワード

AndroidにはUIコントロールが多数用意されており、ここではTextView、ImageView、Button、EditView、ProgressBar、SeekBar、ScrollView、WebViewの使用方法について説明します.各種コントロールを紹介する前に、android UIコントロールの最も基本的ないくつかの属性を簡単に紹介します.
id:idはコントロール固有の識別子であり、*findViewById(R.id.*)**でコントロールを操作できます.layout_width:コントロール幅、match_に設定可能parent(親レイアウトに満ちている、つまり親レイアウトに現在のコントロールの幅を決定させる)、wrap_content(中身をぴったり包む)、具体的な値(一般的にはdp単位).layout_width:コントロールの高さ、match_に設定可能parent、wrap_content、具体的な値.Visibility:表示するかどうか、3つのオプション値があります:visible(表示、このプロパティをデフォルトに設定しない)、invisible(透明で、画面上でスペースを占有しています)、gone(非表示、スペースを占有しません).1.TextView(テキスト)
TextViewは最も簡単なコントロールと言えるでしょう.
1.1基本属性



 
  
 


text:text属性が表示される文字,@string/app_nameは参照リソースファイルres/values/stringsを表す.xmlのapp_name、直接内容を書くこともできます.



  UIExample
  MainActivity


gravity:TextViewでのコンテンツ位置の設定は、オプションでtop、bottom、left、right、centerなどです.テキストをTextViewの右下隅に配置し、gravity="right|bottom"に設定し、textSizeとtextColorの文字サイズと色を|で区切るなど、複数の値を指定できます.id:ここでは「@+id/text」を使用して、idに一意の識別子textを割り当て、参照と同様に+が1つ増えたことを示します.1.2 styleの定義
上のスタイルがタイトルのスタイルであり、複数回繰り返し使用されている場合.各タイトルがこのようにスタイルを定義すると、ワークロードが増えるだけでなく、修正を使用することが難しくなります.この場合、styleを抽象化することでこの問題を解決できます.これは,Web開発におけるCSSの役割と同様である.



  ...
  

 

  

1.3動的操作

//         TextView      
public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //   findViewById,  TextView   。
    //   setText() getText()     。
    TextView textView = (TextView) findViewById(R.id.text);
    textView.setText("Hello World!");
    Log.d("MainActivity",textView.getText().toString());
  }
}

2.ImageView(画像)
テキストがあるから、写真が欠かせない.



id:javaコードで動的に操作しない場合、id属性は省略できます.src:表示されるピクチャを定義し、ロードするピクチャをres/drawable/ディレクトリの下に配置すればよい.

//   setImageResource()    。
//            res/drawable/    。
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(R.drawable.test_image2);

3.Button(ボタン)
3.1基本スタイル


text: text即按钮上的提示内容
3.2 点击事件

3.2.1 为点击事件注册监听器


//  12 ,     OnClickListener,  onClick()  。
public class MainActivity extends Activity {
 
  private TextView textView;
   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.text);
    Button button = (Button) findViewById(R.id.button_1);
    button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        // ...       
        //   :textView.setText("Hello World");
      }
    });
  }
}

3.2.2インタフェースOnClickListenerの実装

//  14 ,         this
//  17 ,    OnClickListener onClick()  
// java        ,      java      
public class MainActivity extends Activity implements View.OnClickListener{
 
  private TextView textView;
   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.text);
    Button button = (Button) findViewById(R.id.button_1);
    button.setOnClickListener(this);
  }
   
  @Override
  public void onClick(View view){
    //   id  ,                  
    //      ,       
    switch (view.getId()){
      case R.id.button_1:
        // ...       
        //   :textView.setText("Hello World!");
        break;
      default:
        break;
    }
  }
}

4.EditText(入力ボックス)
4.1基本スタイル



maxLines:入力ボックスの最大行番号が3行で、3行を超えるとテキストが上にスクロールされ、EditTextは引き伸ばされません.指定しない場合、EditTextは入力内容の増加に伴って引き伸ばされます.hint:Htmlのplaceholderのように、入力ボックスのヒントに使用されます.4.2入力内容の取得

//     ,       。
public class MainActivity extends Activity {
   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // ...
    Button button = (Button) findViewById(R.id.button_1);
    final EditText editText = (EditText) findViewById(R.id.edit);
    button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //    getText()    editText   
        String input_text = editText.getText().toString();
        Log.d("MainActivity",input_text);
      }
    });
  }
}

5.ProgressBar(進捗バー)
5.1円形進捗バー



Visibility:visible(表示)、invisible(透明、占有空間)、gone(非表示、非占有空間)、初期値は非表示に設定されます.

//          ,        ,     ,     
//          
public class MainActivity extends Activity implements View.OnClickListener{
 
  private ProgressBar progressBar;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // ...
    Button button = (Button) findViewById(R.id.button_1);
    progressBar = (ProgressBar) findViewById(R.id.progress_bar);
    button.setOnClickListener(this);
  }
 
  @Override
  public void onClick(View view) {
    switch (view.getId()){
      case R.id.button_1:
        //      ,        ,      
        //     ,     
        if(progressBar.getVisibility() == View.GONE) {
          progressBar.setVisibility(View.VISIBLE);
        } else {
          progressBar.setVisibility(View.GONE);
        }
        break;
      default: break;
    }
  }
}

5.2水平進捗バー



style:styleを水平スタイルに設定し、他のスタイルは自分で試してもいいです.

//  onClick()   
@Override
public void onClick(View view) {
  switch (view.getId()){
    case R.id.button_1:
      //        ,       +10
      int progress = progressBar.getProgress();
      progressBar.setProgress(progress + 10);
    default: break;
  }
}

6.SeekBar(スライドバー)
6.1基本スタイル




max:スライドバーの最大値、100 progressに設定:スライドバーを初期化する値、50 6.2登録スライドリスナーに設定

public class MainActivity extends Activity {
 
  private TextView textView;
   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.text);
    SeekBar seekBar = (SeekBar) findViewById(R.id.seek_bar);
    //        ,        ,      、    、    
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, 
          boolean fromUser) {
        if(fromUser){
          //       ,         
          textView.setText("      ,   :" + progress);
        }
      }
 
      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
        Log.d("MainActivity","          ");
      }
 
      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
        Log.d("MainActivity","          ");
      }
    });
  }
}

7.SrollView(スクロール可能ビュー)


  
  


TextViewの内容が多すぎる場合(1ページでは表示できない)、ScrollViewを使用するとページを垂直スクロール可能モードにし、垂直スクロールしてすべての内容を見ることができます.8.WebView(ブラウザ)



AndroidManifestでxmlにネットワークへのアクセス権限を追加


  
    ...
  
  


public class MainActivity extends Activity {
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView webView = (WebView) findViewById(R.id.web_view);
    //     javasript
    webView.getSettings().setJavaScriptEnabled(true);
    //     ,  shouldOverrideUrlLoading  
    webView.setWebViewClient(new WebViewClient(){
      @Override
      public boolean shouldOverrideUrlLoading(WebView view,String url){
        view.loadUrl(url); //    
        return true; //true      WebView    ,        
      }
    });
    webView.loadUrl("//www.jb51.net");
  }
}

Webページを開いたブラウザのようなプログラムを実行しますが、Webサイトの入力ボックスが欠けています.
以上が本文のすべての内容で、みんなの学習に役立つことを望みます.