完整代码加布局有吗
时间: 2023-11-10 17:10:44 浏览: 69
小米官网布局完整代码jq特效加分析
当然,下面是一个完整的示例代码,包括布局和 Java 代码:
布局文件 `activity_main.xml`:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="长按这里弹出上下文菜单" />
</RelativeLayout>
```
Java 代码 `MainActivity.java`:
```java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private RelativeLayout mRootLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textView);
mRootLayout = findViewById(R.id.rootLayout);
// 注册上下文菜单
registerForContextMenu(mTextView);
registerForContextMenu(mRootLayout);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == mTextView) {
// 添加自定义的上下文菜单选项
MenuItem item1 = menu.add(Menu.NONE, 1, Menu.NONE, "打电话");
item1.setIcon(R.drawable.phone);
MenuItem item2 = menu.add(Menu.NONE, 2, Menu.NONE, "发短信");
item2.setIcon(R.drawable.message);
} else if (v == mRootLayout) {
// 添加自定义的上下文菜单选项
menu.add(Menu.NONE, 3, Menu.NONE, "分享");
menu.add(Menu.NONE, 4, Menu.NONE, "收藏");
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
// 处理打电话操作
Toast.makeText(this, "打电话", Toast.LENGTH_SHORT).show();
return true;
case 2:
// 处理发短信操作
Toast.makeText(this, "发短信", Toast.LENGTH_SHORT).show();
return true;
case 3:
// 处理分享操作
Toast.makeText(this, "分享", Toast.LENGTH_SHORT).show();
return true;
case 4:
// 处理收藏操作
Toast.makeText(this, "收藏", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
}
```
在这个示例中,我们在布局文件中添加了一个 TextView 和一个 RelativeLayout,分别用于演示在不同的视图上添加上下文菜单。在 Java 代码中,我们注册了这两个视图的上下文菜单,并在 onCreateContextMenu() 方法中添加了自定义的菜单选项。在 onContextItemSelected() 方法中,我们处理了用户选择的操作,并通过 Toast 显示了相应的消息。
注意,在 onCreateContextMenu() 方法中,我们通过判断参数 v 的值来确定当前是哪个视图弹出了上下文菜单,从而添加相应的自定义菜单选项。
阅读全文