0

アプリの開発には混乱があり、リストに SQLite データをリストしました。ユーザーがそれを長くクリックすると、4〜5個のアイテムを含むアラートダイアログが表示されるはずです。しかし、それは失敗します。誰かがそれについて考えているなら? だから私をそこに案内してください。

私はこのコードを使用しましたが、動作しません....

lv.setOnItemClickListener ( new OnItemClickListener() {

    public void onItemClick ( AdapterView<?> parent, View view,int position, long id) {
        final CharSequence[] items = {"India", "US", "UK","Australia"};
        AlertDialog.Builder builder = new    AlertDialog.Builder(CustomerConView.this);

        builder.setTitle("Alert Dialog with ListView");

        builder.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {                                 
                Toast.makeText(getApplicationContext(), "hi", Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog alert = builder.create();
        alert.show();
    }

});

ありがとう....

4

4 に答える 4

1
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg3) {
        // TODO Auto-generated method stub
        Log.d("postiton", String.valueOf(position));
        //switch(position)
        //{
        //case 0:
        if(position==0)
        {
            if(Session.getActiveSession()==null)
            {
                Toast.makeText(MainActivity.this, "You must login first", Toast.LENGTH_LONG).show();
            }
            else
            {
                dialog=new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle("Update Status");

                LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                dialogView = inflater.inflate(R.layout.update_status, null);
                //dialog.
                dialog.setView(dialogView);
                dialog.setPositiveButton("Update Status", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int ButtonId) {
                        // TODO Auto-generated method stub
                        UpdateStatus();
                    }
                });
                dialog.show();
            }
        }

        //case 1:
        if(position==1) 
        {

            if(Session.getActiveSession()==null)
            {
                Toast.makeText(MainActivity.this, "You must login first", Toast.LENGTH_LONG).show();
            }
            else
            {
                dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle("Upload Photo");

                LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                dialogView = inflater.inflate(R.layout.post_photo, null);

                Button browse = (Button)dialogView.findViewById(R.id.browsePhotoButton);
                browse.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent i = new Intent(
                                Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                                startActivityForResult(i, RESULT_LOAD_IMAGE);
                    }
                });

                dialog.setView(dialogView);
                dialog.setPositiveButton("Upload Photo", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int ButtonId) {
                        // TODO Auto-generated method stub
                        publishStory(image);
                    }
                });

                dialog.show();
            }
        }

        if(position==2)
        {
            if(Session.getActiveSession()==null)
            {
                Toast.makeText(MainActivity.this, "You must login first", Toast.LENGTH_LONG).show();
            }
            else
            {
                Intent friendsActivity = new Intent(MainActivity.this,Friends.class);
                startActivity(friendsActivity);
            }
        }


    }

これを参照してください。リストビュー項目のクリック時にダイアログも表示しています。

警告ダイアログのビューを設定して何かを表示していない問題は、警告ダイアログに表示するレイアウトを割り当てる必要があります。それを試してみてください。

于 2012-12-31T13:08:45.023 に答える
1

次のメソッドを使用します: registerForContextMenu()

アクティビティの onCreate で呼び出す必要があり、メソッド「onCreateContextMenu()」を実装する必要があります。

于 2012-12-31T12:45:09.890 に答える
0

Get Application Context が他のクラスで機能しない

classname.this と書く

例: myservice.this

myservice は私のクラス名です

于 2013-04-30T08:19:35.807 に答える
0

これを使用してください、これはあなたを助けるかもしれません。. . . .

public boolean onContextItemSelected(MenuItem aItem) 
    {
        AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) aItem.getMenuInfo();
        switch (aItem.getItemId()) 
        {
            case 0:
                try 
                {
                    // your code 
                }
                catch (Exception ewe) 
                {
                    Log.e("Exception",""+ewe)
                }       
                break;

            case 1:
                           ................ for all your cases

            break;  
        }
        return false;
    }
于 2012-12-31T12:34:17.260 に答える