`
bashenmail
  • 浏览: 226301 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义Dialog

阅读更多



 代码如下:

SearchDialog.java

import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class SearchDialog extends Dialog {

    private ImageButton key_button,author_button,package_button;
    
    private EditText keyword_Text,author_Text,package_Text;
    
    private Button advanced_button,sumbit_button;
    
    private boolean isExpand = true;
    
    private Context context;
    
    private Intent intent;
    
	public SearchDialog(Context context){
		
		super(context);
		
		this.context = context;
	}
	
	public SearchDialog(Context context, int theme) {
		
		super(context, theme);
		
		this.context = context;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.search_dialog);
		
		//搜关键字按钮
		key_button  = (ImageButton)findViewById(R.id.key_button);
		
		//搜作者按钮
		author_button = (ImageButton)findViewById(R.id.author_button);
		
		//搜包名按钮
		package_button = (ImageButton)findViewById(R.id.package_button);
		
		//高级按钮
		advanced_button = (Button)findViewById(R.id.advanced_button);
		
		//设置监听
		key_button.setOnClickListener(myOnClickListener);
		author_button.setOnClickListener(myOnClickListener);
		package_button.setOnClickListener(myOnClickListener);
		advanced_button.setOnClickListener(myOnClickListener);
		
		//关键字输入框
		keyword_Text = (EditText)findViewById(R.id.key_edit);
		
		//作者输入框
		author_Text = (EditText)findViewById(R.id.author_edit);
		
		//包名输入框
		package_Text = (EditText)findViewById(R.id.package_edit);
		
		//提交按钮
		sumbit_button = (Button)findViewById(R.id.sumbit_button);
		
		sumbit_button.setOnClickListener(myOnClickListener);
		
		showOthers();
	}

	private void showOthers(){
		
		if(isExpand){
			
			//默认隐藏其它搜索框和提交按钮
			author_button.setClickable(false);
			package_button.setClickable(false);
			author_Text.setEnabled(false);
			package_Text.setEnabled(false);
			
		}else{
			
			//显示其它选项
			author_button.setClickable(true);
			package_button.setClickable(true);
			author_Text.setEnabled(true);
			package_Text.setEnabled(true);
		}
	}
	
	private View.OnClickListener myOnClickListener = new View.OnClickListener() {
		
		public void onClick(View v) {
			
			try {
				
				intent = new Intent("android.intent.action.VIEW");
				
				switch(v.getId()){
				case R.id.key_button:
					
					String words = keyword_Text.getText().toString().trim();
					
					if(words.length()>0){
						
						intent.setData(Uri.parse("market://search?q="+words));
						
						dismiss();
						
						context.startActivity(intent);
						
						
					}else{
						dismiss();
						
						showNotice(R.string.nowords);
					}
					break;
				case R.id.author_button:
					
					words = author_Text.getText().toString().trim();
					
					if(words.length()>0){
						
						intent.setData(Uri.parse("market://search?q=pub:"+words));
						
						dismiss();
						
						context.startActivity(intent);
						
						
					}else{
						dismiss();
						
						showNotice(R.string.nowords);
					}
					break;
				case R.id.package_button:
					
					words = package_Text.getText().toString().trim();
					
					if(words.length()>0){
						
						intent.setData(Uri.parse("market://search?q=pname:"+words));
						
						dismiss();
						
						context.startActivity(intent);
						
					}else{
						dismiss();
						
						showNotice(R.string.nowords);
					}
					break;
				case R.id.advanced_button:
					
					isExpand = isExpand == true?false:true;
					
					showOthers();
					
					break;	
				case R.id.sumbit_button:
					
					Intent submitIntent = new Intent("android.intent.action.VIEW");
					
					String keywords = keyword_Text.getText().toString().trim();
					
					String author = author_Text.getText().toString().trim();
					
					String pack = package_Text.getText().toString().trim();
					
					String url = "market://search?";
					
					if(keywords.length()>0||author.length()>0||pack.length()>0){
						
						if(keywords.length()>0){
							
							url+="q="+keywords;
							if(author.length()>0){
								
								url+=" pub:"+author;
							}
							if(pack.length()>0){
								
								url+=" pname:"+pack;
							}
						}else if(author.length()>0){
							
							url += "q=pub:"+author;
							
							if(pack.length()>0){
								
								url+=" pname:"+pack;
							}
						}else if(pack.length()>0){
							
							url+="q=pname:"+pack;
						}
						
						submitIntent.setData(Uri.parse(url));
						
						context.startActivity(submitIntent);
						
						dismiss();
					}else{
						dismiss();
						
						showNotice(R.string.nowords);
					}
					
					break;	
				}
			} catch (Exception e) {
				
				e.printStackTrace();
			}
		}
	};
	
	private void showNotice(int id){
		
		Toast.makeText(context, context.getResources().getText(id), Toast.LENGTH_LONG).show();
	}
}

 

Layout:

<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content">
<LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    	
    <!-- 关键字 -->	    
    <LinearLayout
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:orientation="horizontal"
    	android:minWidth="280dip">
    	
    	<ImageButton 
    		android:id="@+id/key_button"
    		android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:src="@drawable/search_search"
    	    />
       <EditText
	    	android:id="@+id/key_edit"
	    	android:layout_width="fill_parent"
	    	android:layout_height="wrap_content"
	    	android:hint="@string/search_keyword"/>    
    </LinearLayout>
    
    <!-- 作者 -->     
    <LinearLayout 
    	android:id="@+id/author_layout"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:orientation="horizontal">
    
    	<ImageButton 
    		android:id="@+id/author_button"
    		android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:src="@drawable/search_author"/>
    	<EditText
	    	android:id="@+id/author_edit"
	    	android:layout_width="fill_parent"
	    	android:layout_height="wrap_content"
	    	android:hint="@string/search_author"/>	
    </LinearLayout>	    
    	
    <!-- 包名 -->     
    <LinearLayout 
    	android:id="@+id/package_layout"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:orientation="horizontal">
    
    	<ImageButton 
    		android:id="@+id/package_button"
    		android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:src="@drawable/search_package"/>
    	<EditText
	    	android:id="@+id/package_edit"
	    	android:layout_width="fill_parent"
	    	android:layout_height="wrap_content"
	    	android:hint="@string/search_package"/>	
    </LinearLayout>	
    	
    <!-- 高级 -->
   	<LinearLayout 
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:orientation="horizontal">
    
    	<Button 
    		android:id="@+id/advanced_button"
    		android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:text="@string/search_advanced"/> 
    	<Button 
	   		android:id="@+id/sumbit_button"
	   		android:layout_width="fill_parent"
		    android:layout_height="wrap_content"
		    android:text="OK"/>
    </LinearLayout>
            
</LinearLayout>
</ScrollView> 

 

 调用代码:

SearchDialog dialog = new SearchDialog(this);
		
		dialog.setTitle(R.string.market_search);
		
		dialog.show();

 如图:



 

  • 大小: 12.1 KB
  • 大小: 13.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics