Toast 通知 。。。

标题栏进度条
  在后台线程中执行各种操作(网络连接、大数据存储)的时候,我们希望让客户能看到后台有操作在进行,那么既能有效的提示用户,又不占用当前操作空间,最好的方法就是在标题栏有个进度条。实现的方法很简单,代码如下:
?
代码片段,双击复制

   public  void  onCreate(Bundle savedInstanceState) {
   super .onCreate(savedInstanceState);
   // 先给Activity注册界面进度条功能
  requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
  setContentView(R.layout.main);
   // 在需要显示进度条的时候调用这个方法
  setProgressBarIndeterminateVisibility( true );
   // 在不需要显示进度条的时候调用这个方法
   //setProgressBarIndeterminateVisibility(false);
  setContentView(R.layout.main);
  }




import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 

public class EX05_08 extends Activity { 
/*声明对象变量*/ 
private NotificationManager myNotiManager; 
private Spinner mySpinner; 
private ArrayAdapter<String> myAdapter; 
private static final String[] status = { "在线","离开","忙碌中","马上回来","离线" }; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
/* 载入main.xml Layout */ 
setContentView(R.layout.main); 
/* 初始化对象 */ 
myNotiManager= (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
mySpinner=(Spinner)findViewById(R.id.mySpinner); 
myAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,status); 
/* 应用myspinner_dropdown自定义下拉菜单模式 */ 
myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown); 
/* 将ArrayAdapter添加Spinner对象中 */ 
mySpinner.setAdapter(myAdapter); 
/* 将mySpinner添加OnItemSelectedListener */ 
mySpinner.setOnItemSelectedListener( new Spinner.OnItemSelectedListener() { 

@Override 
public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2,long arg3) { 
/* 依照选择的item来判断要发哪一个notification */ 
if(status[arg2].equals("在线")) { 
setNotiType(R.drawable.msn,"在线"); 
} else if(status[arg2].equals("离开")) { 
setNotiType(R.drawable.away,"离开"); 
} else if(status[arg2].equals("忙碌中")) { 
setNotiType(R.drawable.busy,"忙碌中"); 
} else if(status[arg2].equals("马上回来")) { 
setNotiType(R.drawable.min,"马上回来"); 
} else { 
setNotiType(R.drawable.offine,"离线"); 

@Override 
public void onNothingSelected(AdapterView<?> arg0) { 
}); 
/* 发出Notification的method */ 
private void setNotiType(int iconId, String text) { 
/* 创建新的Intent,作为单击Notification留言条时, 
* 会运行的Activity 
*/ 
Intent notifyIntent=new Intent(this,EX05_08_1.class); 
notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK); 
/* 创建PendingIntent作为设置递延运行的Activity */ 
PendingIntent appIntent=PendingIntent.getActivity(EX05_08.this, 0,notifyIntent,0); 
/* 创建Notication,并设置相关参数 */ 
Notification myNoti=new Notification(); 
/* 设置statusbar显示的icon */ 
myNoti.icon=iconId; 
/* 设置statusbar显示的文字信息 */ 
myNoti.tickerText=text; 
/* 设置notification发生时同时发出默认声音 */ 
myNoti.defaults=Notification.DEFAULT_SOUND; 
/* 设置Notification留言条的参数 */ 
myNoti.setLatestEventInfo(EX05_08.this,"MSN登录状态", text,appIntent); 
/* 送出Notification */ 
myNotiManager.notify(0,myNoti); 



自定义土司
  1. LayoutInflater inflater = getLayoutInflater();  
  2. View layout = inflater.inflate(R.layout.toast_layout,  
  3.                                (ViewGroup) findViewById(R.id.toast_layout_root));  
  4.   
  5. ImageView image = (ImageView) layout.findViewById(R.id.image);  
  6. image.setImageResource(R.drawable.android);  
  7. TextView text = (TextView) layout.findViewById(R.id.text);  
  8. text.setText("Hello! This is a custom toast!");  
  9.   
  10. Toast toast = new Toast(getApplicationContext());  
  11. toast.setGravity(Gravity.CENTER_VERTICAL, 00);  
  12. toast.setDuration(Toast.LENGTH_LONG);  
  13. toast.setView(layout);  
  14. toast.show();

控制Toast的显示为位置
              Toast msg = Toast.makeText(Main.this, "Message", Toast.LENGTH_LONG);  
                msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);  
                msg.show();


你可能感兴趣的:(String,service,layout,dropdown,Class,import)