Soru & Cevap

Activity başlatma veya Dialog gösterme.

15.07.2014 - 04:52

Selamlar;

Arkadaşlar yarattığım bir CustomView'den yeni bir Activity başlatabilmek veya customDialog açabilmek için Context' e ihtiyacım var. Bunu bir türlü olduramadım. Yardımcı olması açısından kodu paylaşıyorum : 

[code]

public class GridDesign extends View {

// . . .Variable  Definitions . . . 

     /**
     * CONSTRUCTOR METHOD
     **/
    public GridDesign(Context paramContext)
    {
        super(paramContext);// 7
        settings = PreferenceManager.getDefaultSharedPreferences(paramContext);// 8
        pntGrid.setStrokeWidth(1.0F);// 9
        pntGrid.setColor(Color.argb(50, 255, 255, 255));// 10 COLOR = WHITE
        pntWhite.setStrokeWidth(1.0F);// 11
        pntWhite.setColor(Color.WHITE);// 12
        pntRed.setStrokeWidth(1.0F);// 13
        pntRed.setColor(Color.RED);// 14
        pntRed.setTextSize(20);// 15
        pntBlue.setStrokeWidth(1.0F);// 16
        pntBlue.setColor(Color.BLUE);// 17

        if (settings.getBoolean("pref_back", true))// 18 DRAWLINE COLOR( TRUE = BLACK - FALSE = WHITE)
            currentItemColor = Color.BLACK;// 19
    }

......... // Burada bir method içinde butona tıklama yakalıyorum fakat "dialog" ya da "activity" başlatamadım

}

[/code]

Şimdiden teşekkür ederim.

8 Görüntülenme

5 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
16.07.2014 - 10:53

hata mı veriyor yazabilir misin bi hatayı.saçma gelebilir ama şu çözümü dener misin

[code]


private FrameLayout layout;

private GridDesign myGrid;

private Context mContext;
 

[/code]

üst tarafa bi context at.

[code]

mContext=this;
myGrid = new GridDesign(mContext);
 

[/code]

Bende daha önce dialoglarla iç içe bir şeyler yaparken başıma bi window hatası gelip duruyordu stackoverflowda böyle bi öneri sunulmuştu çalışıyordu gayet iyi bi şekilde.

Şerif Şadi Şenkule
16.07.2014 - 11:00
İşe yaradı, teşekkür ederim.
picture-23778-1401789696.jpg
serifsadi88
16.07.2014 - 10:45

Activity class'ım bu şekilde, kullandığım GridView class'ı extends View şeklinde, soruda görebilirsiniz, denediğim yöntemler de yazılı, yine başarısız.

[code]

public class CustomActivity extends Activity
{
    private FrameLayout layout;
    private GridDesign myGrid;

 

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_ACTION_BAR);

        Object localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        layout = new FrameLayout(getApplicationContext());
        layout.setLayoutParams((ViewGroup.LayoutParams) localObject);

        myGrid = new GridDesign(getApplicationContext());
        localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        myGrid.setLayoutParams((ViewGroup.LayoutParams) localObject);
        layout.addView(myGrid);

        localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        ((FrameLayout.LayoutParams) localObject).gravity = Gravity.NO_GRAVITY;
        ((FrameLayout.LayoutParams) localObject).setMargins(10, 60, 10, 10);
        myGrid.setFocusable(true);
        myGrid.setFocusableInTouchMode(true);

        setContentView(layout);
    }

protected void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent)
    {
        ......
    }

    public void onConfigurationChanged(Configuration paramConfiguration)
    {
        .......
    }

    public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)
    {
       .....

    }
}

[/code]

picture-1372-1408467635.jpg
ahmtbrk
15.07.2014 - 05:51
Eger bu view i bir activity üzerinden kosturuyorsan ve activityde this parametresini veriyorsan calismama sansi yok:)
picture-23778-1401789696.jpg
serifsadi88
15.07.2014 - 05:18

//Constuctor'ın içinde bu şekilde global bir değişkene atadım.

 

myActivity = paramContext;

 

. . . . . .

 

//Tıklamayı yakaladıgım methodun içine ise bunu yazdım.

 

final Dialog dialog = new Dialog(myActivity);

dialog.setContentView(R.layout.custom_dialog);

dialog.setTitle("DENEME"); dialog.show();

 

Fakat olmadı.

picture-830-1447858140.jpg
onur
15.07.2014 - 05:09

paramContext'i kullanabilirsin

Şerif Şadi Şenkule
15.07.2014 - 05:16
//Constuctor'ın içinde bu şekilde global bir değişkene atadım. myActivity = paramContext; . . . . . . //Tıklamayı yakaladıgım methodun içine ise bunu yazdım. final Dialog dialog = new Dialog(myActivity); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("DENEME"); dialog.show(); Fakat olmadı.