2012-07-18 92 views
2

我已經實現了多個搜索欄在Android中像多重搜索欄

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

    sb1=(SeekBar) findViewById(R.id.seekBar1); 
    sb2=(SeekBar) findViewById(R.id.seekBar2); 
    sb3=(SeekBar) findViewById(R.id.seekBar3); 

    tv1=(TextView) findViewById(R.id.textView1); 
    tv2=(TextView) findViewById(R.id.textView2); 
    tv3=(TextView) findViewById(R.id.textView3); 

    sb1.setOnSeekBarChangeListener(this); 
    sb2.setOnSeekBarChangeListener(this); 
    sb3.setOnSeekBarChangeListener(this); 

} 

@Override 
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) 
{ 

    switch (arg0.getId()) 
    { 
    case R.id.seekBar1: 
     tv1.setText(arg1); 
     break; 
    case R.id.seekBar2: 
     tv2.setText(arg1); 
     break; 
    case R.id.seekBar3: 
     tv3.setText(arg1); 
     break; 
    } 
} 

@Override 
public void onStartTrackingTouch(SeekBar arg0) 
{ 
    // TODO Auto-generated method stub 

} 

@Override 
public void onStopTrackingTouch(SeekBar arg0) 
{ 
    // TODO Auto-generated method stub 

} 

每當我運行這個程序,它提供了以下錯誤:

致命異常:主要

07-18 15:41:13.200: E/AndroidRuntime(596): android.content.res.Resources$NotFoundException:String resource ID #0x1 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.content.res.Resources.getText(Resources.java:201) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.TextView.setText(TextView.java:2817) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.example.allocationseekbar.MainActivity.onProgressChanged(MainActivity.java:42) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.SeekBar.onProgressRefresh(SeekBar.java:89) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:506) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.ProgressBar.refreshProgress(ProgressBar.java:515) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.ProgressBar.setProgress(ProgressBar.java:564) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.AbsSeekBar.trackTouchEvent(AbsSeekBar.java:337) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:292) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.View.dispatchTouchEvent(View.java:3766) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1671) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.app.Activity.dispatchTouchEvent(Activity.java:2086) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1655) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.view.ViewRoot.handleMessage(ViewRoot.java:1785) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.os.Looper.loop(Looper.java:123) 
07-18 15:41:13.200: E/AndroidRuntime(596): at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-18 15:41:13.200: E/AndroidRuntime(596): at java.lang.reflect.Method.invokeNative(Native Method) 
07-18 15:41:13.200: E/AndroidRuntime(596): at java.lang.reflect.Method.invoke(Method.java:521) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-18 15:41:13.200: E/AndroidRuntime(596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-18 15:41:13.200: E/AndroidRuntime(596): at dalvik.system.NativeStart.main(Native Method) 

我不知道爲什麼會發生這種情況。請幫幫我。提前感謝

+0

感謝薩米爾編輯此。我可以知道你是如何改變這種格式的logcat錯誤嗎 – Khushi 2012-07-18 10:52:32

回答

1

您正在將int傳入您的TextViewsetText()方法,該方法是使用該ID查找資源的重載。你需要改變它(以及類似的線):

tv1.setText(arg1.toString()); 
+0

感謝很多cjk它爲我工作..... – Khushi 2012-07-18 10:50:21

+0

我們必須將整數轉換爲字符串:使用tv1.setText(Integer.toString(arg1))或tv1。 setText(「」+ arg1) – Khushi 2012-07-19 10:53:39

+1

或我的方式,這通常是首選的方式... – cjk 2012-07-19 13:18:06

0

我們可以使用下面的解決方案:

1. tv1.setText(Integer.toString(arg1)) 
2. tv1.setText(""+arg1)