0

ユーザーがテキスト ビューで値をクリックしたときに、新しいアクティビティを開こうとしています。ここで onCreate メソッド:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get change in selected projects group & show group accordingly
    RadioGroup rgProjectGroupsToLoad = (RadioGroup) findViewById(R.id.rgProjectGroupsToLoad);
    rgProjectGroupsToLoad.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
    {
        public void onCheckedChanged(RadioGroup rGroup, int checkedId)
        {
            // Get the vocab needed to provide options
            Resources res = getResources();
            String[] region_values = res.getStringArray(R.array.regions);
            String[] priority_values = res.getStringArray(R.array.priorities);
            String[] curr_values = region_values;

            TextView tvGroupingHeader = (TextView) findViewById(R.id.listRegionsPrioritiesHeader);

            RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(checkedId);
            boolean isChecked = checkedRadioButton.isChecked();
            if (isChecked)
            {
                String selected_group = (String) checkedRadioButton.getText();
                Log.w("myApp", "Project Group selected: " + selected_group);
                tvGroupingHeader.setText(selected_group);
                if (selected_group.equals("Geographic Regions"))
                {
                    curr_values = region_values;
                }
                else
                {
                    curr_values = priority_values;
                }
                // Project Group Adapter for ListView
                ArrayAdapter<String> proj_group_adapter = new ArrayAdapter<String>(
                        getBaseContext(),
                        android.R.layout.simple_list_item_1, 
                        android.R.id.text1, 
                        curr_values
                );
                ListView lvRegionsPriorities = (ListView) findViewById(R.id.listRegionsPriorities);
                lvRegionsPriorities.setAdapter(proj_group_adapter); 

                // Show hidden elements
                TextView tv = (TextView) findViewById(R.id.listRegionsPrioritiesHeader);
                tv.setVisibility(View.VISIBLE);
                ListView lv = (ListView) findViewById(R.id.listRegionsPriorities);
                lv.setVisibility(View.VISIBLE);
            }
        }
    });
}

設定しようとしましlvRegionsPriorities.setOnItemClickListenerたが、グーグルで検索しても結果が見つからない多くのエラーが発生しました。

それで、誰かここで助けてもらえますか?イベントリスナーを適切に設定するにはどうすればよいですか?

ありがとうエリック

4

2 に答える 2

0

新しいアクティビティを開始しようとしている場所には何も表示されません。同じアクティビティで非表示のビューを表示しようとしていることがわかります。Intents を使用して、新しいアクティビティを開始します。クリックしてもビューが表示されないという問題がある場合は、表示されている状態から始めて、表示されるかどうかを確認してみてください。ラジオボタンとは関係のないようなものかもしれません。

于 2012-12-07T00:54:13.693 に答える
0

TextViewがあなたのアクティビティにある場合:

TextView tv = (TextView) findViewById(...);
tv.setOnClickListener(new OnClickListener{
    public void onClick(View v){
    Intent i = new Intent(CurrentActivity.this, NextActivity.class);
    startActivity(i);
    }
})

特定のアイテムがクリックされたときにアクティビティを開きたい場合ListView

OnItemClickListener() アクティビティに Inを実装させますOnCreate(): lvRegionsPriorities.setOnItemClickListener(this);

他の場所でオーバーライド:

public void onItemClick(View v, int position, long id){
     if (position == xx){ // check your condition here
         Intent i = new Intent(CurrentActivity.this, NextActivity.class);
         startActivity(i);         
     }
}
于 2012-12-07T02:13:26.030 に答える