RealDream
شنبه 24 آبان 1393, 18:53 عصر
درود دوستان،
من مدتیه درگیر برنامه نویسی اندروید شدم و گاهی مشکلاتم رو با کمک جستجو توی همین انجمن خودمون یا نت پیدا می کنم اما متاسفانه موردی که پیش اومده هیچ سلوشنی رو حداقل من نتونستم براش پیدا کنم . این تکه کدی که قرار میدم در واقع یه دکمه اس که یه اکتیوتی دیگه رو به صورت دیالوگ باز میکنه. برای من مهم بود که حتما به این شکل کد فراخوانی رو بنویسم. برای دکمه های موجود توی اکتیویتی دوم که به صورت دیالوگ فراخوانی میشه هم کد برای کلیک نوشته شده اما متاسفانه به هیچ وجه رویداد کلیک اتفاق نمیفته یا حداقل پروسه های نوشته شده براش اجرا نمیشن. و البته همونطور که توی کد هم معلومه برای OnCreate هم کد اجرا نمیشه .
من کد ها رو اینجا میزارم، لطفاً اساتید بزرگوار یه بررسی بکنن ببینن باید کد به چه صورت فراخوانی بشه که من بتونم رویداد کلیک رو کنترل کنم :
کد اول مربوط به اکتیویتی 1 :
public class MainActivity extends Activity {
private Button btnC;
protected Dialog dialog;
public void showActionMenu(){
dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITL E);
dialog.setContentView(R.layout.actionmenu);
//dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)) ;
dialog.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
btnC = (Button)findViewById(R.id.btntest);
btnC.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
showActionMenu();
}
});
}
}
اینم کد اکتیوتی دوم که من به صورت یه دیالوگ فراخوانیش می کنم :
public class actionmenu extends Activity {
//private Button btnC;
private ImageButton btncall;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.actionmenu);
Toast.makeText(getApplicationContext(), "متن",Toast.LENGTH_LONG).show();
addListenerOnButton();
}
private void addListenerOnButton() {
btncall = (ImageButton) findViewById(R.id.ibtncall);
btncall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "متن",Toast.LENGTH_LONG).show();
finish();
}
});
}
}
من مدتیه درگیر برنامه نویسی اندروید شدم و گاهی مشکلاتم رو با کمک جستجو توی همین انجمن خودمون یا نت پیدا می کنم اما متاسفانه موردی که پیش اومده هیچ سلوشنی رو حداقل من نتونستم براش پیدا کنم . این تکه کدی که قرار میدم در واقع یه دکمه اس که یه اکتیوتی دیگه رو به صورت دیالوگ باز میکنه. برای من مهم بود که حتما به این شکل کد فراخوانی رو بنویسم. برای دکمه های موجود توی اکتیویتی دوم که به صورت دیالوگ فراخوانی میشه هم کد برای کلیک نوشته شده اما متاسفانه به هیچ وجه رویداد کلیک اتفاق نمیفته یا حداقل پروسه های نوشته شده براش اجرا نمیشن. و البته همونطور که توی کد هم معلومه برای OnCreate هم کد اجرا نمیشه .
من کد ها رو اینجا میزارم، لطفاً اساتید بزرگوار یه بررسی بکنن ببینن باید کد به چه صورت فراخوانی بشه که من بتونم رویداد کلیک رو کنترل کنم :
کد اول مربوط به اکتیویتی 1 :
public class MainActivity extends Activity {
private Button btnC;
protected Dialog dialog;
public void showActionMenu(){
dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITL E);
dialog.setContentView(R.layout.actionmenu);
//dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)) ;
dialog.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
btnC = (Button)findViewById(R.id.btntest);
btnC.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
showActionMenu();
}
});
}
}
اینم کد اکتیوتی دوم که من به صورت یه دیالوگ فراخوانیش می کنم :
public class actionmenu extends Activity {
//private Button btnC;
private ImageButton btncall;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.actionmenu);
Toast.makeText(getApplicationContext(), "متن",Toast.LENGTH_LONG).show();
addListenerOnButton();
}
private void addListenerOnButton() {
btncall = (ImageButton) findViewById(R.id.ibtncall);
btncall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "متن",Toast.LENGTH_LONG).show();
finish();
}
});
}
}