我在“ MainActivity.java ”中动态创建了50个相对布局。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
RelativeLayout big=new RelativeLayout(this);
RelativeLayout mini;
setContentView(big);
for(int i=0; i<50; i++)
{
//just a sample example. Accept that the code is completely correct.
mini=new RelativeLayout(this);
big.addView(mini);
}
}
}
现在,我想,当长按每个“迷你”时,会出现一个弹出或上下文菜单,其中包含两个选项(1.Open和2.Hide)。这个,打开/隐藏动作将由我在选择一个时完成。
我搜索了互联网并找到了一些建议,可以在菜单directiory中创建 *。xml ,并使用 onCreateContextMenu 事件附加到 MainActivity.java 。
但是,我不明白。因为我是adnroid的新手,所以请长时间按下带有说明的视图(例如“将 menu_all.xml 添加到菜单目录”,以创建上下文菜单的完整代码,“创建新的。* java 文件”等。)
N.B。我想在API 19上构建的应用程序。
提前致谢。
答案 0 :(得分:0)
您可以使用
registerForContextMenu(mini);
此函数将视图作为参数并为您生成上下文菜单。
覆盖您活动的onCreateContextMenu函数并执行您想要执行的任何操作。
这是一个示例代码
public class MainActivity extends Activity {
ListView listView1;
String contacts[]={"Ajay","Sachin","Sumit","Tarun","Yogesh"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView1=(ListView)findViewById(R.id.listView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contacts);
listView1.setAdapter(adapter);
// Register the ListView for Context menu
registerForContextMenu(listView1);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Select The Action");
menu.add(0, v.getId(), 0, "Call");//groupId, itemId, order, title
menu.add(0, v.getId(), 0, "SMS");
}
@Override
public boolean onContextItemSelected(MenuItem item){
if(item.getTitle()=="Call"){
Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show();
}
else if(item.getTitle()=="SMS"){
Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show();
}else{
return false;
}
return true;
}
}