3

こんにちは、カスタム リストビューの基本アダプター クラスがあります。私のリストビューにはボタンがあります。そのボタンを押すと、コントロールを別のアクティビティにリダイレクトする必要があります。インテントを使用してリダイレクトすると、実行時にエラーが表示されます。ここに私のコードがあります、

public View getView(final int position, View convertView, ViewGroup parent) 
{

    convertView = mInflater.inflate(R.layout.listview_elements, null);

    TextView textview1 = (TextView) convertView.findViewById(R.id.TextView01);
    TextView textview2 = (TextView) convertView.findViewById(R.id.TextView02);
    TextView textview3 = (TextView) convertView.findViewById(R.id.TextView03);
    Button buy=(Button)convertView.findViewById(R.id.buy_song_button);
    buy.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

        Intent intent=new Intent(con,MainActivity.class);
        con.startActivity(intent);


        }
    }); }

基本アダプター クラスから別のアクティビティにリダイレクトする方法は?

4

5 に答える 5

15

私はこの問題を自分で解決しました。インテントの簡単な変更で解決しました。意図に合わせてフラグを設定する必要がありました。それでおしまい。

public View getView(final int position, View convertView, ViewGroup parent) 
     {

convertView = mInflater.inflate(R.layout.listview_elements, null);

TextView textview1 = (TextView) convertView.findViewById(R.id.TextView01);
TextView textview2 = (TextView) convertView.findViewById(R.id.TextView02);
TextView textview3 = (TextView) convertView.findViewById(R.id.TextView03);
Button buy=(Button)convertView.findViewById(R.id.buy_song_button);
buy.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {

    Intent intent=new Intent(context,MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);


    }
}); }
于 2011-05-09T04:13:18.250 に答える
2

これを試して:

  Intent intent=new Intent(activity.getApplicationContext(),MyPlace.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra("city", "Yangon");
    activity.getApplicationContext().startActivity(intent);
于 2013-01-28T07:34:03.127 に答える
1

コンストラクターを介してコンテキストを渡し、次のコード行を使用します。

    Intent intent=new Intent(context.getApplicationContext(), YourActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
      context.getApplicationContext().startActivity(intent);

ありがとう :)

于 2016-03-12T19:23:34.183 に答える
1

このコードは、特に gridview adapter の基本アダプタークラスがある場合に機能しました。

cmnt_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("position",position+"");
                Intent comment_page=new Intent(view.getContext(),comments_page.class);
                comment_page.putExtra("position",position);
                view.getContext().startActivity(comment_page);
            }
于 2016-03-02T14:08:46.953 に答える
1

onClick メソッドで con の代わりに v.getContext() を使用する

于 2011-05-06T08:13:41.387 に答える