我需要打開一個彈出窗口,然後去另一個在我的活動。 我已經能夠做到這一點,這兩個彈出窗口是相同的,但他們每個人分配一個值在不同的變量。 這兩個彈出式廣告是完全一樣的,唯一改變的事情就是文字。 我想知道是否有什麼辦法可以使我的代碼在MainActivity較小,一些方法來使用相同的兩種鍵彈出窗口, 因爲在未來將有3個彈出窗口(等於這些) 這裏是彈出窗口的XML和我的活動代碼:使用與其他類似彈出窗口中的彈出窗口相同的xml代碼?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#4d4dff"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/textoPoup1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="1 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
android:textColor="@android:color/white"
android:textSize="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnP1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:id="@+id/btnP2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="50" />
<Button
android:id="@+id/btnP3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="100" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnP4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="150" />
<Button
android:id="@+id/btnP5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="200" />
<Button
android:id="@+id/btnP6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="250" />
</LinearLayout>
<Button
android:id="@+id/btnNext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Next Popup" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
其他彈出:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#4d4dff"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/textoPoup1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="2 - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi "
android:textColor="@android:color/white"
android:textSize="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnP1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:id="@+id/btnP2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="50" />
<Button
android:id="@+id/btnP3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="100" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnP4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="150" />
<Button
android:id="@+id/btnP5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="200" />
<Button
android:id="@+id/btnP6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="250" />
</LinearLayout>
<Button
android:id="@+id/btnNext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Next Popup" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
MainActivity:
public class MainActivity extends AppCompatActivity implements View.OnClickListener
{
private Button btnPopup;
private int value1;
private int value2;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPopup = (Button) findViewById(R.id.btnPopup);
btnPopup.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
if (v.getId() == R.id.btnPopup)
{
//-----------------------------------Second POPUP----------------------------------------------------
LayoutInflater layoutInflater2 = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView2 = layoutInflater2.inflate(R.layout.popup2, null);
final PopupWindow popupWindow2 = new PopupWindow(popupView2,
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final Button btn2P1 = (Button) popupView2.findViewById(R.id.btnP1);
final Button btn2P2 = (Button) popupView2.findViewById(R.id.btnP2);
final Button btn2P3 = (Button) popupView2.findViewById(R.id.btnP3);
final Button btn2P4 = (Button) popupView2.findViewById(R.id.btnP4);
final Button btn2P5 = (Button) popupView2.findViewById(R.id.btnP5);
final Button btn2P6 = (Button) popupView2.findViewById(R.id.btnP6);
final Button btn2Next = (Button) popupView2.findViewById(R.id.btnNext);
btn2Next.setEnabled(false);
btn2P1.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 0;
btn2P1.setEnabled(false);
btn2P2.setEnabled(true);
btn2P3.setEnabled(true);
btn2P4.setEnabled(true);
btn2P5.setEnabled(true);
btn2P6.setEnabled(true);
btn2Next.setEnabled(true);
}
});
btn2P2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 50;
btn2P1.setEnabled(true);
btn2P2.setEnabled(false);
btn2P3.setEnabled(true);
btn2P4.setEnabled(true);
btn2P5.setEnabled(true);
btn2P6.setEnabled(true);
btn2Next.setEnabled(true);
}
});
btn2P3.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 100;
btn2P1.setEnabled(true);
btn2P2.setEnabled(true);
btn2P3.setEnabled(false);
btn2P4.setEnabled(true);
btn2P5.setEnabled(true);
btn2P6.setEnabled(true);
btn2Next.setEnabled(true);
}
});
btn2P4.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 150;
btn2P1.setEnabled(true);
btn2P2.setEnabled(true);
btn2P3.setEnabled(true);
btn2P4.setEnabled(false);
btn2P5.setEnabled(true);
btn2P6.setEnabled(true);
btn2Next.setEnabled(true);
}
});
btn2P5.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 200;
btn2P1.setEnabled(true);
btn2P2.setEnabled(true);
btn2P3.setEnabled(true);
btn2P4.setEnabled(true);
btn2P5.setEnabled(false);
btn2P6.setEnabled(true);
btn2Next.setEnabled(true);
}
});
btn2P6.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 250;
btn2P1.setEnabled(true);
btn2P2.setEnabled(true);
btn2P3.setEnabled(true);
btn2P4.setEnabled(true);
btn2P5.setEnabled(true);
btn2P6.setEnabled(false);
btn2Next.setEnabled(true);
}
});
btn2Next.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
popupWindow2.dismiss();
//popupWindow3.showAsDropDown(btnPopup, 50, -30);
}
});
//-----------------------------------First POPUP----------------------------------------------------
LayoutInflater layoutInflater1 = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView1 = layoutInflater1.inflate(R.layout.popup1, null);
final PopupWindow popupWindow1 = new PopupWindow(popupView1,
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final Button btnP1 = (Button) popupView1.findViewById(R.id.btnP1);
final Button btnP2 = (Button) popupView1.findViewById(R.id.btnP2);
final Button btnP3 = (Button) popupView1.findViewById(R.id.btnP3);
final Button btnP4 = (Button) popupView1.findViewById(R.id.btnP4);
final Button btnP5 = (Button) popupView1.findViewById(R.id.btnP5);
final Button btnP6 = (Button) popupView1.findViewById(R.id.btnP6);
final Button btnNext = (Button) popupView1.findViewById(R.id.btnNext);
btnNext.setEnabled(false);
btnP1.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 0;
btnP1.setEnabled(false);
btnP2.setEnabled(true);
btnP3.setEnabled(true);
btnP4.setEnabled(true);
btnP5.setEnabled(true);
btnP6.setEnabled(true);
btnNext.setEnabled(true);
}
});
btnP2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 50;
btnP1.setEnabled(true);
btnP2.setEnabled(false);
btnP3.setEnabled(true);
btnP4.setEnabled(true);
btnP5.setEnabled(true);
btnP6.setEnabled(true);
btnNext.setEnabled(true);
}
});
btnP3.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 100;
btnP1.setEnabled(true);
btnP2.setEnabled(true);
btnP3.setEnabled(false);
btnP4.setEnabled(true);
btnP5.setEnabled(true);
btnP6.setEnabled(true);
btnNext.setEnabled(true);
}
});
btnP4.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 150;
btnP1.setEnabled(true);
btnP2.setEnabled(true);
btnP3.setEnabled(true);
btnP4.setEnabled(false);
btnP5.setEnabled(true);
enter code here btnP6.setEnabled(true);
btnNext.setEnabled(true);
}
});
btnP5.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 200;
btnP1.setEnabled(true);
btnP2.setEnabled(true);
btnP3.setEnabled(true);
btnP4.setEnabled(true);
btnP5.setEnabled(false);
btnP6.setEnabled(true);
btnNext.setEnabled(true);
}
});
btnP6.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
value2 = 250;
btnP1.setEnabled(true);
btnP2.setEnabled(true);
btnP3.setEnabled(true);
btnP4.setEnabled(true);
btnP5.setEnabled(true);
btnP6.setEnabled(false);
btnNext.setEnabled(true);
}
});
btnNext.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
popupWindow1.dismiss();
popupWindow2.showAtLocation(btnPopup, Gravity.CENTER, 0, 0);
}
});
popupWindow1.showAtLocation(btnPopup, Gravity.CENTER, 0, 0);
}
}
}
爲什麼不實用的設置文本,你不需要創建相同的屏幕的2彈出,當你點擊1彈出式按鈕,當時一些mili sec.trans動畫實際上改變標題文本.. :) –
感謝您的幫助,但是這第二個彈出設置一個值從第一個彈出不同的變量,它可能無法工作,因爲你需要更改文本,並將該值分配給不同的變量。 –
你可以用布爾值true和false來處理它 –