0

クラスは別のクラスの拡張であり、リストビューをいじるとエラーが発生します。誰でも私を助けることができますか?レイアウト: GridLayout

XML:

<ListView
    android:id="@+id/lvContexts"
    android:layout_width="899dp"
    android:layout_height="356dp"
    android:layout_column="1"
    android:layout_columnSpan="3"
    android:layout_gravity="left"
    android:layout_row="3"
    android:layout_rowSpan="2" >
</ListView>

クラス:

public class EditarContext extends Iniciar {
    ....

    lvContext = (ListView) findViewById(R.id.lvContexts);
ArrayList<String> lvList = (ArrayList<String>) contexts;
ArrayAdapter<String> spArrayAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, lvList);
lvContext.setAdapter(spArrayAdapter);
lvContext.setClickable(true);
lvContext.setVisibility(View.VISIBLE);
lvContext.setVisibility(View.GONE);
}

OBS: ListView のコンテンツがコンテンツ スピナーで選択されています。

エラーは次のとおりですが、見逃すことはありません: http://i.stack.imgur.com/Gdsdt.png

4

3 に答える 3

0

findViewByID を使用するには、アクティビティを拡張する必要があります。そうでない場合は、アクティビティをパラメーターとしてコンストラクターに渡してインスタンス化する必要があります。

EditarContext instance = new EditarContext(this);

..

public class EditarContext extends Iniciar {

public Activity activity; 
//.... other attributes 

public EditarContext( Activity _activity){

   this.activity = _activity;
//other initializations...

}
}

次に、次のように findViewById を使用できます。

lvContext = (ListView)this.activity.findViewById(R.id.lvContexts); 

お役に立てれば。

于 2013-11-11T04:01:13.010 に答える
0
// try this
View  view = LayoutInflater.from(MyActivity.this).inflate(R.layout.XML,null,false);
lvContext = (ListView) view.findViewById(R.id.lvContexts);
于 2013-11-11T04:04:22.557 に答える
0

これを試して :

public class YourActivity extends Activity 
{
     private ListView lvContext;

     public void onCreate(Bundle saveInstanceState) {
        setContentView(R.layout.your_layout);

        lvContext = (ListView) findViewById(R.id.your_list_view_id);
        // Instanciating an array list
        ArrayList<String> lvList = new ArrayList<String>();
        lvList.add("foo");
        lvList.add("bar");

        // This is the array adapter, it takes the context of the activity as a first // parameter, the type of list view as a second parameter and your array as a third parameter
        ArrayAdapter<String> spArrayAdapter =      
        new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lvList);

        lvContext.setAdapter(spArrayAdapter); 
}

}

于 2013-11-11T03:57:57.610 に答える