【发布时间】:2015-02-04 20:57:44
【问题描述】:
我正在尝试根据所选列表视图项的位置将所选声音保存为铃声/通知声音,但我在查找相关教程(如果有)方面遇到了严重问题。下面是我到目前为止的代码,但我想以最简单的方式/尽可能少的代码行来实现这一点,因此为了简单起见,我使用了 1 个上下文菜单。理想
public void function1(int id){
}
是设置铃声和代码的地方
public void function2(int id){
}
是用于设置通知声音的代码。
例如(尝试在设置铃声时实现此目的)单击并按住“铃声”列表项>出现上下文菜单>选择“设置为铃声”上下文菜单项>出现“电话铃声”窗口(“铃声”作为可用选项之一) > 用户单击 OK 或 Cancel > 如果用户单击 OK,则返回我的应用程序并显示 Toast 通知(“铃声已保存”)或如果用户单击取消,返回我的应用程序并显示 Toast 通知(“铃声未保存”)。
所有帮助将不胜感激。
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
private ListView mainList;
private MediaPlayer mp;
private final String[] listContent = {
"chimes", "chord", "ding", "notify",
"recycle", "ringin", "ring out","tada"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
mainList = (ListView) findViewById(R.id.main_listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listContent);
mainList.setAdapter(adapter);
registerForContextMenu(this.mainList);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, v.getId(), 0, "Action 1");
menu.add(0, v.getId(), 0, "Action 2");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle().equals("Action 1")){
function1(item.getItemId());
} else if (item.getTitle().equals("Action 2")){
function2(item.getItemId());
} else {
return false;
}
return true;
}
public void function1(int id){
}
public void function2(int id){
}
}
【问题讨论】:
标签: java android android-studio