我的列表包括位于“标题”行下方的八个项目,所有这些项目都包含在应用程序的选项卡中 我无法根据列表中单击的项目弄清楚如何更改为活动(或可能是其他选项卡)。

我目前正在扩展Activity类,不确定是否是一个问题。 我尝试在扩展ListActivity类的同时使用onListItemClick; 但是,这导致应用程序崩溃。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

public class Tab2 extends Activity {

    private ListView listView1;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab2);

        Cinema cinema_data[] = new Cinema[]{
            new Cinema(R.drawable.blue, "Blue Cinema"),
            new Cinema(R.drawable.green, "Green Cinema"),
            new Cinema(R.drawable.purple, "Purple Cinema"),
            new Cinema(R.drawable.red, "Red Cinema"),
            new Cinema(R.drawable.yellow, "Gold Cinema"),
            new Cinema(R.drawable.blue, "Cyan Cinema"),
            new Cinema(R.drawable.green, "Lime Cinema"),
            new Cinema(R.drawable.purple, "Magenta Cinema")
        };

        CinemaAdapter adapter = new CinemaAdapter(this,
                R.layout.listview_item_row, cinema_data);

        listView1 = (ListView)findViewById(R.id.listView1);

        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
        listView1.addHeaderView(header);

        listView1.setAdapter(adapter);

    }   
}

任何帮助将不胜感激!

编辑:

protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        try {
            Intent i = new Intent("android.lab.two.Tab1");
            startActivity(i);
        } catch(Exception e){
            e.printStackTrace();
        }
    }

===============>>#1 票数:1

如果OnItemClickListener不起作用,则可以尝试在适配器中进行设置:

在适配器的getView方法中,可以将OnClickListener添加到行视图中,如下所示:

public View getView(int arg0, View arg1, ViewGroup arg2) {
//Create the view for your row
    AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
    ViewGroup.LayoutParams.WRAP_CONTENT, 64);
    TextView rowView = new TextView(getApplicationContext());
    rowView.setLayoutParams(lp);
    rowView.setText("your value");
    rowView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           try {
                //Starting a new intent ( here a Dial Activity )
                Intent newIntent = new Intent(Intent.ACTION_DIAL);
                newIntent.setData(Uri.parse("tel:"+value));
                startActivity(newIntent);
            } catch (ActivityNotFoundException e) {
                Log.e("your application", "Dial failed", e);
            }
        }  
    });
}

===============>>#2 票数:0

如果您在tab(activity)中设置onListItemClick()方法,则必须使用

protected void onListItemClick(ListView l, View v, int position, long id) 
{
            super.onListItemClick(l, v, position, id);

            Intent i = new Intent(this,tab1.class);
            startActivity(i);           
}

如果您设置onListItemClick()方法是在其他类中定义的,则必须使用

protected void onListItemClick(ListView l, View v, int position, long id) 
{
            super.onListItemClick(l, v, position, id);

           Intent i = new Intent(v.getContext(),tab1.class);
           startActivity(i);            
}

如果tab1(活动)是主要活动,并且您必须在tab1(活动)内调用tab2(活动),则必须使用这种方式...

protected void onListItemClick(ListView l, View v, int position, long id) 
{
                super.onListItemClick(l, v, position, id);

                System.exit(0);               
}

===============>>#3 票数:0

您只需在列表视图上设置点击监听器。 您将获得职位并从那里执行逻辑。 以下代码将帮助您入门。 我不知道您遇到了什么错误,但是没有什么地方会出错。

    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            Intent myIntent = new Intent(view.getContext(),
                    NextClass.class);

            startActivity(myIntent);
        }
    });

===============>>#4 票数:0

  1. 在TabHost中使用setCurrentTab方法可基于列表项索引更改选项卡。
  2. 将此活动本身激发意图,使其保持在单个顶部启动模式中,然后使用捆绑的数据通过选项卡主机更改选项卡。

我希望这有帮助..

===============>>#5 票数:0

您不能从TabHost启动活动。 你在一个内部阶级。 您必须使用NestedClasses。 与其尝试在onClickListener中启动Intent,不如尝试记录一些内容,您将看到它会起作用。 Log.d(“ LOG”,“ Message”);

  ask by Josh translate from so

未解决问题?本站智能推荐: