علامة التبويب معالجة المحتوى ... كيف في الروبوت؟
-
20-09-2019 - |
سؤال
ولدي tabactivity مع اثنين من علامات التبويب.
وفي هذا tabactivity لدي EDITTEXT وزر للبحث في قاعدة البيانات المحلية.
ولدي فئة listactivity باعتباره tabcontent. هذا يظهر من قبل framelayout.
وأريد أن تحديث هذا listactivity على أساس النص الذي تم إدخاله في EDITTEXT الذي هو في tabactivity.
وكيف نفعل ذلك؟
وأنا خلقت أسلوب في listactivity:
public void search(String temp) {
String val=temp;
try{
c=BruTube_Videos.this.getContentResolver().query(Constants.CONTENT_URI, null, Constants.TITLE+" like '%"+val+"%'", null, "DATETIME("+Constants.PUBLISHED+") DESC");
}catch(Exception e){
Log.v(TAG, "exp in cursor");
}
show(c);
}
واستدعاء وهذه الطريقة في tabactivity مثل هذا:
EditText et1=(EditText) findViewById(R.id.EditText01);
String temp=et1.getText().toString();
BruTube_Videos vdo_obj=new BruTube_Videos();
vdo_obj.search(temp);
ولكنه يظهر استثناء في logcat:
و12/02 16: 58: 26.623: VERBOSE / BruTube_Videos (227): استثناء بحثا brutube: java.lang.IllegalStateException: خدمات النظام غير متوفرة لأنشطة قبل OnCreate الخاص ()
وكيف يمكنني التعامل معه؟
وذلك بفضل.
المحلول
BruTube_Videos vdo_obj=new BruTube_Videos();
وأبدا استدعاء المنشئ على Activity
. أنت لا خلق أنشطة - كنت اقول الروبوت لبدء لهم. وهذا هو مصدر الخطأ الخاص بك.
وأنا ننصحك بشدة للتخلص من أنشطة تماما، ولها عقد TabActivity
واحد على Views
- واحد هو أن تخطيط لشكل تحرير الخاص بك، واحد هو أن ListView
الخاص بك. ثم، أنك لن تحصل على الخلط وإلى أين يذهب رمز، لأنه ليس هناك نشاط واحد فقط. وهذا هو أيضا أكثر فعالية من البرمجة، والذاكرة، وحدة المعالجة المركزية، وجهة نظر استخدام البطارية.