dialog的DEMO
掀开新档
id命名为btnalert
onClick从java档来加入
再来是比较难的code
package com.huang.alert_dialog;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button alert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alert = (Button) findViewById(R.id.btnalert);
alert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("靠自己好吗?");
alertDialog.setMessage("稳步踏实,则百事方佳~~");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}
);
alertDialog.show();
}
});
}
}
Menu-就是手机上面的"三个点"
2种方法-这里写第1种用xml档-layout+menu.xml
新增档案-
再从res-new-Android Resource Directory
然後选type-选menu-上面会自己变
res夹–> 右 -->新增 resourse dir --> type:menu --> new resource file
menu/menu_main.xml
然後再从menu的右键去new-Menu Resource File
制定名称-
长这样~
整个就是menu-还有里面的button
拉入Menu Item
id+title+icon都要做
显示在哪的
showAsAction="always"
要用空格点2下会挑出可以V~
设置 showAsAction
ifRoom:如果 toolbar 上有位置才显示,不然会在三个点点击之後才出现
never:不显示在界面上,只在三个点点击之後才出现
always:会显示在 toolbar 上
先看到icon再看到title
如果没有icon就会直接看到title
这里反而是手打程序码不会动~是要按格子
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/Item01"
android:icon="@android:drawable/btn_star_big_on"
android:title="AA"
app:showAsAction="always" />
</menu>
visible是否显示
enabled是否可用
再写第2个没有写always就会被收在第2个
选择 ifRoom
目前显示
ifRoom:如果 toolbar 上有位置才显示,不然会在三个点点击之後才出现
never:不显示在界面上,只在三个点点击之後才出现
always:会显示在 toolbar 上
第3个选never
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/Item01"
android:icon="@android:drawable/btn_star_big_on"
android:title="AA"
app:showAsAction="always" />
<item
android:id="@+id/Item02"
android:icon="@android:drawable/ic_btn_speak_now"
android:title="BB"
app:showAsAction="ifRoom" />
<item
android:id="@+id/Item03"
android:icon="@android:drawable/ic_dialog_email"
android:title="CC"
app:showAsAction="never" />
</menu>
如果没有特别写就是showAsAction="never"
然後item04下面再放menu让他一层又一层
显示
下面第1个item写-
下面第2个item写-
程序码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/Item01"
android:icon="@android:drawable/btn_star_big_on"
android:title="AA"
app:showAsAction="always" />
<item
android:id="@+id/Item02"
android:icon="@android:drawable/ic_btn_speak_now"
android:title="BB"
app:showAsAction="ifRoom" />
<item
android:id="@+id/Item03"
android:icon="@android:drawable/ic_dialog_email"
android:title="CC"
app:showAsAction="never" />
<item
android:id="@+id/Item04"
android:title="OTHER" >
<menu >
<item
android:id="@+id/sub01"
android:title="DD01" />
<item
android:id="@+id/sub02"
android:title="DD02" />
</menu>
</item>
</menu>
目前模拟器是看不到东西的
从java档让menu显示-右键Generate-->Override
Override Methods(CTRL+O) :去寻找onCreateOptionsMenu(menu)-在WIN上
找到了~
package com.huang.mymenu;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//建立menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
}
java档让menu显示-右键Generate-->Override
Override Methods(CTRL+O) :去寻找 -在WIN上
我按完有点跑掉-这里用手动调成这样
package com.huang.mymenu;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//建立menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
//menu加侦听器
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
return super.onOptionsItemSelected(item);
}
}
在xml产生+在java档叫出来
建立 分析器:menu角色 / 位置
package com.huang.mymenu;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//建立menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater =getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
return true;
}
//menu加侦听器
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
return super.onOptionsItemSelected(item);
}
}
到这里模拟器 就可以看到了喔~
加侦听器用switch
//menu加侦听器
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.Item01:
Toast.makeText(MainActivity.this,"第1层第1项",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
item02 就是让他直接消失,所以不用
Toast.makeText(MainActivity.this,"第1层第1项",Toast.LENGTH_SHORT).show();
程序码改成:
case R.id.Item02:
//Toast.makeText(MainActivity.this,"第1层第1项",Toast.LENGTH_SHORT).show();
finish();
後面也是依序新增:
package com.huang.mymenu;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//建立menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater =getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
return true;
}
//menu加侦听器
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.Item01:
Toast.makeText(MainActivity.this,"第1层第1项",Toast.LENGTH_SHORT).show();
break;
case R.id.Item02:
//Toast.makeText(MainActivity.this,"第1层第1项",Toast.LENGTH_SHORT).show();
finish();
case R.id.Item03:
Toast.makeText(MainActivity.this,"第1层第3项",Toast.LENGTH_SHORT).show();
break;
case R.id.sub01:
Toast.makeText(MainActivity.this,"第2层第1项",Toast.LENGTH_SHORT).show();
break;
case R.id.sub02:
Toast.makeText(MainActivity.this,"第2层第2项",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item); //赋予功能
}
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/Item01"
android:icon="@android:drawable/btn_star_big_on"
android:title="AA"
app:showAsAction="always" />
<item
android:id="@+id/Item02"
android:icon="@android:drawable/ic_btn_speak_now"
android:title="BB"
app:showAsAction="ifRoom" />
<item
android:id="@+id/Item03"
android:icon="@android:drawable/ic_dialog_email"
android:title="CC"
app:showAsAction="never" />
<item
android:id="@+id/Item04"
android:title="OTHER" >
<menu >
<item
android:id="@+id/sub01"
android:title="DD01" />
<item
android:id="@+id/sub02"
android:title="DD02" />
</menu>
</item>
</menu>
因为是Toast所以也是要用 手机 模拟
用纯java写出来:
也是开新档案
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item01 = menu.add(0,0,0,"AA");
MenuItem item02 = menu.add(0,1,1,"BB");
MenuItem item03 = menu.add(0,2,2,"CC");
//MenuItem other = menu.add(0,3,3,"OTHER");
item01.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
SubMenu sub = menu.addSubMenu(0,3,3,"OTHER");
sub.add(0,100, 0, "S1");
sub.add(0,101, 1, "S2");
return true;
}
//menu加侦听器
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case 0:
//Toast.makeText(MainActivity.this, "第一层第一项", Toast.LENGTH_SHORT).show();
finish();
break;
case 1:
Toast.makeText(MainActivity.this, "第一层第一项", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this, "第一层第2项", Toast.LENGTH_SHORT).show();
break;
case 100:
Toast.makeText(MainActivity.this, "第2层第一项", Toast.LENGTH_SHORT).show();
break;
case 101:
Toast.makeText(MainActivity.this, "第2层第2项", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
因为是Toast所以也是要用 手机 模拟
要上架的专案不能出现命名里面有test或example
<<: # Day19--从Sruct、Class的本质差异论MVC
参考文件 https://kubernetes.io/docs/tasks/configure-po...
在我们使用 标签样板字面值 可解决 XSS攻击 这里我们先来介绍简单的 标签样板字面值 依据在样板字...
在使用面板成功备份还原後, 再使用SSMS实作的可行性, 是否跟地端的一样? 先使用UI方式备份, ...
Redux 官网 在还没有加入Redux之前,资料在APP中各个view的传递会需要翻山越岭,经过一...
接续昨天。 到到二个页面的程序码中,新增一字串变数,也在生命周期中,使此变数会等於第二页的文字格变数...