android子菜单链接

计应112班—谭娇娇

               在手机中我们已经习惯啦“开始”,“搜索”,“电话通讯录”,“照相机”,“摄像机”等在页面上看上去一点都不美观,所以现在写android的人都会注重美观,方便,不  浪费空间的原则进行操作

 1 android的上下文菜单项是不能用快捷键的

2 android是通过长按某个视图元素来弹出上下文菜单的

3图标和子菜单都无法用在Android的上下文菜单项中

package cn.njcit;

 

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;import android.os.Bundle;

import android.view.KeyEvent;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.RelativeLayout;

import android.widget.Spinner;

import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private ImageButton homeButton;

private ImageButton viewButton;

private ImageButton searchButton;

private ImageButton upButton;

private ImageButton operateButton;

private ImageButton setButton;

private Spinner typeSpinner;

private Button searchButtonofPanel;

private LayoutInflater layoutInflater;

private RelativeLayout relativeLayout;

private View rearchPanel;

 private PopupWindow searchPanel;

private boolean isShowSearchPanel = false;

private EditText searchInputText;

private String currentSearchType = "";

 private static final String[] type = {"a", "b", "c", "d"};

private static final String[] type = { "图像", "音乐", "视频", "apk", "自定义" };

private ArrayAdapter<String> typeAdapter;

 private String currentDirctory = "/";

private boolean isHomeDirctory = true;

private boolean isListViewShow = true;

 /** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

 

bindView();

}

 

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.home_button:

if (isHomeDirctory) {

homeButton.setImageResource(R.drawable.toolbar_favorite);

isHomeDirctory = false;

} else {

homeButton.setImageResource(R.drawable.toolbar_home);

isHomeDirctory = true;

}

 

break;

case R.id.gridview_button:

if (isListViewShow) {

viewButton.setImageResource(R.drawable.toolbar_list);

isListViewShow = false;

} else {

viewButton.setImageResource(R.drawable.toolbar_icon);

isListViewShow = true;

}

 

break;

case R.id.search_button:

showSearchPanel();

break;

case R.id.up_button:

if (currentDirctory.equalsIgnoreCase("/")) {

isExit();

}

break;

case R.id.operate_button:

 

break;

case R.id.settings_button:

 

break;

}

 

}

 

@Override

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.menu, menu);

return true;

}

 

@Override

public boolean onOptionsItemSelected(MenuItem item) {

super.onOptionsItemSelected(item);

switch (item.getItemId()) {

case R.id.add:

// newDirOrFile();

break;

case R.id.settings:

// set();

break;

case R.id.about:

Intent i = new Intent(this, About.class);

startActivity(i);

break;

case R.id.exit:

isExit();

break;

default:

break;

}

return true;

 

}

 

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

 

if (keyCode == KeyEvent.KEYCODE_BACK) {

 

if (isShowSearchPanel) {

closeSearchPanel();

return true;

}

 

if (currentDirctory.equalsIgnoreCase("/")) {

isExit();

}

 return true;

 

} else {

return super.onKeyDown(keyCode, event);

}

}

 public void bindView() {

homeButton = (ImageButton) findViewById(R.id.home_button);

viewButton = (ImageButton) findViewById(R.id.gridview_button);

searchButton = (ImageButton) findViewById(R.id.search_button);

upButton = (ImageButton) findViewById(R.id.up_button);

operateButton = (ImageButton) findViewById(R.id.operate_button);

setButton = (ImageButton) findViewById(R.id.settings_button);

 homeButton.setOnClickListener(this);

viewButton.setOnClickListener(this);

searchButton.setOnClickListener(this);

upButton.setOnClickListener(this);

operateButton.setOnClickListener(this);

setButton.setOnClickListener(this);

 

}

 public void isExit() {

new AlertDialog.Builder(MainActivity.this).setTitle(R.string.notice)

.setIcon(R.drawable.alert).setMessage(R.string.is_exit)

.setPositiveButton(R.string.ok,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

MainActivity.this.finish();

}

}).setNegativeButton(R.string.cancel,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

}

}).show();

}

public void showSearchPanel() {

if (layoutInflater == null) {

layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

}

 

if (relativeLayout == null) {

relativeLayout = (RelativeLayout) findViewById(R.id.main_layout);

}

 

Animation searchPanelIn = AnimationUtils.loadAnimation(this,

R.anim.search_panel_in);

 

if (rearchPanel == null) {

rearchPanel = layoutInflater.inflate(R.layout.search_panel_layout,

null);

rearchPanel.startAnimation(searchPanelIn);

relativeLayout.addView(rearchPanel);

} else {

if (!isShowSearchPanel) {

rearchPanel.setVisibility(View.VISIBLE);

rearchPanel.startAnimation(searchPanelIn);

}

}

 // bindView

searchButtonofPanel = (Button) rearchPanel

.findViewById(R.id.search_btnofpanel);

searchButtonofPanel.setOnClickListener(listener_search);

 

typeSpinner = (Spinner) rearchPanel.findViewById(R.id.selecttype);

typeAdapter = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, type);

 

typeAdapter

.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 

typeSpinner.setAdapter(typeAdapter);

typeSpinner

.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

currentSearchType = type[arg2];

}

 

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

}

});

 

isShowSearchPanel = true;

}

 public void closeSearchPanel() {

Animation searchPanelOut = AnimationUtils.loadAnimation(this,

R.anim.search_panel_out);

rearchPanel.startAnimation(searchPanelOut);

rearchPanel.setVisibility(View.GONE);

isShowSearchPanel = false;

}

 Button.OnClickListener listener_search = new Button.OnClickListener() {

public void onClick(View arg0) {

 

if (isShowSearchPanel) {

closeSearchPanel();

}

 

if(currentSearchType.equalsIgnoreCase(type[4])) {

showCustomSearchPanel();

} else {

doSearch(currentSearchType);

}

 

}

};

 public void showCustomSearchPanel() {

LayoutInflater factory = LayoutInflater.from(this);

final View searchEntryView = factory.inflate(

                R.layout.custom_search_panel, null);

searchInputText = (EditText) searchEntryView.findViewById(R.id.search_input);

 

AlertDialog.Builder searchDialog = new AlertDialog.Builder(this);

searchDialog.setTitle(R.string.search_bycustom);

searchDialog.setView(searchEntryView);

searchDialog.setPositiveButton(R.string.search, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int whichButton) {

    String searchText = searchInputText.getText().toString().trim();

    if(searchText.length()!=0){

        doCustomSearch(searchText);

    } else {

    showMessage(getResources().getString(R.string.filenameisnull));

    }

    

    }

});

searchDialog.setNegativeButton(R.string.cancel,new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int whichButton) {

    /* User clicked cancel so do some stuff */

    }

});

searchDialog.show();

 

}

 public void doSearch(String str) {

showMessage(str);

}

public void doCustomSearch(String str) {

showMessage(str);

}

public void showMessage(String text) {

Toast.makeText(this, text, Toast.LENGTH_LONG).show();

}

 

}

 

posted on 2013-05-22 21:06  到处打听幸福的下落〆  阅读(181)  评论(0)    收藏  举报

导航